今天开机,发现 http://localhost 无法访问了。昨天还是好好的。奇怪。
进入 IIS 中查看,一个红色的“Error”映入眼睑,原来 IIS 根本就没有启动。点击“启动”N次,都失败,提示如下:
IIS 无法启动 发生意外错误 8ffe2740
纳闷。进入“事件查看器”,在“系统”中,发现 w3svc 服务错误,查看其详细信息如下:
服务无法绑定实例 1。返回数据是错误代码。
有关此消息的详细信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
见鬼了。难道是 IIS 的端口被其他程序占了?不应该啊,也没有安装什么特别的程序。
进入“开始->运行”,输入 cmd,进入 dos 窗口,输入如下命令查看端口使用情况:
c:\Documents and settings\test>netstat -ano
找到本应属于 IIS 使用的 80 端口的使用信息:
Proto Local Address Foreign Address state PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2306
看到 PID 是 2306。
然后打开任务管理器,选择“进程”标签项,然后点击菜单“查看->选择列”,打勾选择“PID(进程标识符)”项,在“进程”列表中,出现了 PID 列,点击之,按 PID 从小到大排列,找到 PID = 2306 所对应的“映像名称”,一看,晕,竟然是 WebThunder (web 迅雷)!
也就是说,本该由 IIS 使用的 80 端口,现在被 WebThunder 占用了。难怪 IIS 出错。
点击右下角系统任务栏的 Web 迅雷图标,打开 Web 迅雷的本地页面,点击“设置->BT/端口设置”,看到其 TCP 端口设置正是 80(这显然是 Web 迅雷的设计失误。80 端口是默认的 IIS 端口,对于 web 程序的开发者来说,经常使用本机的 IIS 来调试程序,而通常使用默认的 80 端口。因此,任何软件——包括 web 迅雷——都不应该默认使用 80,而应该选择一个不常用的端口,例如 5999。总之,应该以不影响现有程序的常用默认设置为基本设计原则)。
相关文章
IIS下配置跨域设置Access-Control-Allow-Origin2019-07-10
开启Gzip后,Html、CSS无法正常访问的原因2014-05-22
IIS Admin Service 服务因下列错误而停止: 系统找不到指定的文件2011-12-01
右键没有“添加到QQ表情”或失效的解决办法2010-07-06