软件安装配置过程,涉及到IIS发布时经常遇到80端口被占用的问题,造成IIS中站点中不是“已启动”的状态,发生这种问题,一般分两种情况。
1.被apache或tomcat等第三方发布程序给占用了。这种情况比较简单,只到用windows自的命令就可以查找到是谁在占用,命令 netstat -ano 显示本机的所有端口比较多不方便查看,所以使用管道命令只显示包含:80字符的 netstat -ano|find “:80” 显示下图1
根据图1中显示的PID值到“任务管理器”中找到相应的程序是关闭或修改其端口,就任你处置了,看图2。
2.微软自己的程序占,就比较难找了,因为注册到系统和系统结合的比较紧密。列如比较常见的mssql的报告服务
在使用 netstat -ano|find “:80” 时如下图3
PID是4这么小的值一般都是操作系统自身了,当然你也关闭不了。这时你要使用netsh http show servicestate命令,继续深度查找如图5
这时找到有程序在使用80端口了,在继续向下看,找到真正的进程ID也是就PID如下图6
找了到真正PID,就和1提到方法一样,再到“任务管理器”找到对应的进程。
图上找到是mssql的报告服务,这里鼠标右键 选“转到服务”,在服务中把它停止。mssql的报告服务,默认安装mssql就会有,而且用户或程序一般都不使用的,停止后把它禁用就可以了