IIS 管理器错误 - 无法绑定到 [::]:80 的底层传输。进程无法访问该文件,因为

Posted

技术标签:

【中文标题】IIS 管理器错误 - 无法绑定到 [::]:80 的底层传输。进程无法访问该文件,因为【英文标题】:IIS Manager Error - Unable to bind to the underlying transport for [::]:80.The process cannot access the file because 【发布时间】:2018-07-13 04:34:46 【问题描述】:

我知道这个问题已在多个论坛中提出,并且有多个版本的答案。不幸的是,这些答案都没有帮助我解决我的问题。

我建立了一个 Windows Server 2016 的 AWS EC2 实例并安装了 IIS、MSMQ、Windows Process Activation Service 和其他一些东西。当我打开我的 IIS 管理器时,我注意到“默认网站”已停止并且当我尝试启动它时,我收到错误“该进程无法访问该文件,因为它正在被另一个进程使用(HRESULT 异常:0x80070020)”。尝试再挖掘一点,在我的事件查看器中发现了这两个异常:

无法绑定到 [::]:80 的底层传输。 IP Listen-Only 列表可能包含对该机器上可能不存在的接口的引用。数据字段包含错误号。

万维网发布服务(WWW 服务)没有为站点 1 注册 URL 前缀 http://:80/SmsHandler。该站点已被禁用。数据字段包含错误号。*

在网上搜索了更多关于这个问题的文章,我发现超过 95% 的文章说可能与 IIS 冲突并使用端口 80 和 443 的潜在应用程序可能是 Skype.. 但我不在我的服务器上安装了 SKYPE..

我运行了“netstat -aon”命令,发现:

C:\Windows\system32>netstat -aon | findstr :80

TCP 169.254.170.2:80 0.0.0.0:0 监听 1164

按照其他在线文章中提到的内容。我试图在我的任务管理器中追踪 PID - 1164,发现它的“服务主机 - 本地系统”进程运行了 15 个系统服务。没有我可以杀死该进程以使我的 IIS 工作的方式..

然后我尝试更改我的 IIS 中的绑定以在不同于 80 的端口上侦听,并且能够启动并运行它。但我不希望 IIS 在 80 以外的任何其他端口上运行,因为我不'不希望用户每次访问网站时都在 URL 中指定端口..

我现在在这里缺乏想法。任何建议将不胜感激。

谢谢!

【问题讨论】:

运行 Jexus 管理器并查看 HTTP API 页面,jexusmanager.com/en/latest/tutorials/… 它可能会显示冲突的 URL 保留,您可以删除它以使 IIS 再次工作。 【参考方案1】:

我遇到了类似的问题,但端口 80 没有。在我的情况下,这是因为 IP 地址 [::] 不允许在任何端口上侦听。将其添加到注册表中的 ListenOnly 列表可解决此问题。 从管理员命令提示符:

netsh http add iplisten ipaddress=::

来自this thread。

【讨论】:

【参考方案2】:

找到了罪魁祸首。对我来说显然不是Skype(因为在大多数情况下都是如此),而是这个名为IP Helper的服务在端口80上运行并与IIS冲突。我发现的方法是,我检查了在服务主机的 PID 下运行的所有服务 - 本地系统(在我的情况下为 1164)并开始一次停止它们,然后查看 IIS 是否开始工作。只是想关闭此线程。如果其他人遇到同样的问题,希望这会有所帮助。

【讨论】:

【参考方案3】:

我安装了 VMware Workstation,解决方法是:“VMware -> 编辑 -> 首选项 -> 共享虚拟机 -> “禁用共享”。

【讨论】:

以上是关于IIS 管理器错误 - 无法绑定到 [::]:80 的底层传输。进程无法访问该文件,因为的主要内容,如果未能解决你的问题,请参考以下文章

绑定到端口 80 的未识别进程

绑定到端口 80 的未识别进程

IIS 的 PHP 管理器无法安装

.net网站如何配置iis发布

在运行时获取IIS绑定

IIS 管理器无法在 .NET 4 应用程序上配置 .NET 编译