IIS 根本就没有启动

今天开机,发现 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。总之,应该以不影响现有程序的常用默认设置为基本设计原则)。
将 TCP 端口改为 5999。保存设置。

### IIS 部署 HTML 文件修改后不更新的原因分析 当在 IIS 上部署的 HTML 文件被修改后未能及时生效,通常可能涉及缓存机制、文件同步问题或其他配置不当的情况。以下是可能导致此现象的具体原因及其解决方案: #### 1. 浏览器缓存 浏览器可能会对静态资源(如 HTML、CSS 和 JavaScript 文件)进行本地缓存,从而导致即使服务器端文件已更改,客户端仍加载旧版本的内容。 - **解决方法**: - 清除浏览器缓存并强制刷新页面 (Ctrl+F5 或 Shift+F5)[^1]。 - 在 HTML 文件中引入动态查询参数来防止缓存,例如 `<script src="main.js?v=1"></script>` 中增加 `?v=1` 参数[^2]。 #### 2. 输出缓存设置 IIS 的输出缓存功能也可能导致 HTML 文件未实时更新。如果启用了输出缓存,则会存储响应副本一段时间,这期间任何文件改动都不会反映给用户。 - **解决方法**: - 打开 IIS 管理器,找到目标站点或目录下的“输出缓存”模块。 - 删除与该 HTML 页面关联的相关条目或者禁用整个站点/应用级别的输出缓存[^3]。 #### 3. 文件系统权限不足 尽管这不是直接造成显示陈旧内容的主要因素,但如果新上传的文件因权限限制而无法覆盖原文件,也会引发类似效果。 - **解决方法**: 确认 IUSR 用户以及应用程序池身份具有足够的读取和写入权限至网站根目录及子文件夹内[^4]。 #### 4. 应用程序池回收周期影响 有时应用程序池设定的时间间隔较短频繁触发工作进程终止再启动流程,这也会影响某些即时变更能否立即显现出来。 - **调整建议**: 适当延长闲置超时时间或是关闭定期重启计划可以减少这种干扰[^5]. ```powershell Set-WebConfigurationProperty -Filter "/system.applicationHost/applicationPools/add[@name='YourAppPoolName']/recycling/periodicRestart" -Name "time" -Value ([TimeSpan]::FromHours(0)) ``` 以上 PowerShell 脚本用于停止基于时间段的应用程序池自动重启行为. --- ### 总结 针对上述情况逐一排查即可定位根本原因所在,并采取相应措施加以修正。一般优先考虑清除浏览器缓存最为简便快捷;其次是核查IIS内部各项高级特性是否合理运用恰当。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值