无法启动IIS Express Web服务器,注册URL失败,访问被拒绝。

223

我的一些Web项目运行正常,但有些却有问题。我决定专注于其中一个有问题的项目。 我使用Windows 7上的Visual Studio 2013。我认为我是以管理员身份运行的,窗口标题显示为项目名称 - Microsoft Visual Studio(管理员)

当我尝试运行该项目时,会弹出一个窗口,显示:

  

无法启动IIS Express Web服务器。

     

无法为网站“SITE NAME”应用程序“/”注册URL“http://localhost:62940/”。 错误描述:拒绝访问。 (0x80070005)。

这似乎并不完全罕见但我尝试了很多建议都没有成功:

  1. 删除%userprofile%\Documents\IISExpress\,尝试运行。

  2. netsh http add urlacl url=http://localhost:62940/ user=everyone,重启并尝试运行。(实际上是user=Alla,因为我的Windows是瑞典语)。

  3. netsh http delete urlacl url=http://localhost:62940/,重启并在%userprofile%\Documents\IISExpress\config\applicationhost.config中将<绑定协议="http" bindingInformation="*:62940:localhost/">更改为<binding protocol="http" bindingInformation="*:62940:/>,然后尝试运行。(这确实改变了错误消息,使其说... URL "http://*:62940/" ...)。

  4. 重新安装IIS 8.0 Express

  5. 重新安装Visual Studio 2013

我束手无策了,我做错了什么?

如果我更改项目的端口(例如改为55555),它就会启动... 这不是一个理想的解决方案,因为这些项目由多个人开发。也许端口被其他东西阻塞了?如果是这样,有没有一种简单的方法来检查它?

端口62940似乎是空闲的。运行netstat不显示任何监听它的应用程序。一定还有其他问题。

我试图在几个月没有接触过它之后今天启动该项目。它能够工作但我不知道为什么。


2
运行 netstat -aon | findstr 命令,查看是否有其他应用程序也在监视端口62940。如果是这样,您不能监视该端口,但必须切换到另一个端口。当明显不是原因时,请勿更改 applicationHost.config 或 netsh http - Lex Li
我按照建议运行了 netstat。似乎没有应用程序监视端口62940。肯定还有其他问题。 - Linus
3
重启对我有用。 - Patrick Borkowicz
重启VS解决了我的问题。 - gajama
43个回答

2

在Visual Studio 2019中,只需移除Debug配置文件并创建新的配置文件即可解决问题。

  1. 进入项目属性,在调试选项卡中
  2. 首先尝试更改端口Web服务器设置
  3. 如果更改端口无效,则移除Debug配置文件并创建新的配置文件-注意确保您知道先前的设置

2

对我而言有效的方法是禁用除当前正在使用的适配器之外的所有其他网络适配器。事件查看器中的事件为: 无法绑定到底层传输 [::]:50064。IP 仅侦听列表可能包含对此计算机上不存在的接口的引用。数据字段包含错误号。

由于我安装了 VMware Workstation、Docker(因此也安装了 Hyper-V)以及一些 VPN 客户端,因此我有很多网络接口。


2

在Visual Studio 2015中:

  • 找到您项目中的启动页面(如:mypage.aspx),右键单击它。
  • 点击“设置为起始页”。
  • 右键单击项目。
  • 点击“属性”。
  • 在左侧点击“Web”选项卡。
  • 在“项目 URL”中,输入一个不同的端口,例如:http://localhost:1234/
  • 在“启动操作”中,选择指定页面:mypage.aspx,或选择指定 URL:http://localhost:1234/mypage.aspx?myparam=xxx

2

我通过关闭所有 iexplorer 和 iexplorer*32 实例来解决了这个问题。看起来即使应用程序窗口已关闭,Internet Explorer 仍然在内存中保持端口打开。


2

我在使用Windows 7和VS 2013时,在构建项目后在浏览器上查看时遇到了这个问题。我只需要关闭浏览器“Chrome”,然后使用一些工具(如Kaspersky)确保端口未被网络活动占用,然后再次尝试即可,而且没有任何问题。


2

我在使用JetBrains Rider时遇到了问题,特别是在端口80和90上,但它在其他端口以及Visual Studio中都可以正常工作。

通过以管理员身份运行,问题得到了解决。


2

我为了提供信息而写下这篇文章。

请在项目中删除该文件。

执行清理>构建>项目启动操作。


2
有时候这个错误可能是由于同一台机器上运行了另一个Visual Studio版本引起的。

2

前往项目“属性”=>“Web”,在“服务器”部分更改端口为未使用的其他端口并保存。系统将要求您创建虚拟目录,请单击“Yes”。现在运行该项目,它将能够正常工作。


这个答案与Francisco三周前写的完全相同。 - Johnny Bones

2

一开始我的程序能够正常运行,但过了一段时间后停止工作,IIS Express 报告该端口正在被使用。
netstat -ab显示 Chrome 正在使用这个端口。当我退出 Chrome 后,程序又可以正常工作了。
然而,我不确定为什么 Chrome 会占用这个端口。


这对我有用。我正在使用“浏览器模拟”功能,在Firefox和Chrome之间切换,但没有运行调试器。在这个过程中可能出现了一些问题。(Win7/VS2015) - Technobabble

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接