【前提】在IIS上导入了SSL证书,同时Apache上也导入了SSL证书。重启以后,发现Apache服务无法开启。
【解决方案】 试了一大堆方法,都无效。包括下载vip的解决资源。
运行cmd,输入netstat -ano,
可以看到80端口被PID4占用,于是打开任务管理器-进程-查看,选择列,勾选PID
可以看到pid 4 的被NT kernel & System 占用
该进程是Http.sys。它是http API的驱动组件,Http栈服务器。如果该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行。这就是阻止Apache运行的原因,因为Http.sys占用着80端口。我们提供了一种应用程序的机制来帮助控制端口共享,但是我需要调查导致你遇到这种困难的是什么特殊应用程序。如果你能提供给我们“netsh http show servicestate”这条命令的输出结果,我就能找出是哪个应用程序在使用Http.sys。
以管理员身份运行“cmd”,
输入 net stop http
输入 y 确定
再输入 Sc config http start= disabled ,成功
再查看一下netstat -ano,发现pid 4占用了445端口
此方案当下有效,但是使用了之后IIS就起不来了,等于说伤敌一千,自损八百。
起不来的话,需要在cmd中修改配置:sc config http start= demand 然后 net start http
【最终解决方案】
还是百度n久,终于发现有一条可以使用,供大家借鉴:
将Windows Sync Share 服务停掉:
这样http 就起来了。