无法启动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个回答

26

我遇到了与此相同的错误信息,但看起来是由IIS Express产生的。 这篇文章帮助我解决了它。

简而言之:

从管理员命令提示符中运行以下命令:

> netsh http add iplisten ipaddress=::

22

在尝试了许多建议却没有成功解决问题后,我只是重新启动了我的电脑。之后,问题就没有再出现了。


15

我最终清理了项目文件(csproj)和应用程序托管配置文件(iis express),删除包括 iis express 配置的所有条目。之后,它就正常工作了。


8
清理 applicationhost.config 文件对我很有帮助。我只是删除了其中所有的 <site> 条目。 C:\Users\<USERNAME>\Documents\IISExpress\config\applicationhost.config - Nick Albrecht

13
如果在安装Visual Studio 2015之后,在系统事件日志中看到错误消息,例如:无法绑定到下层传输:{your_port}。可能会在IP仅限监听列表中包含一个引用... ,则您可能缺少注册表项。请在管理员命令提示符下运行此命令:netsh http add iplisten ipaddress=::以解决该问题。 我在这里找到了详细描述解决方案的链接:这里

10

在我尝试了这里列出的所有步骤都失败后,我通过以管理员身份运行VS2015使其正常工作。


6

我在Windows 10和VS 2013上遇到了这个问题。 显然,IIS Express可以处理的端口号有最大限制。 对我来说,62546以上的端口无法使用。


1
我不能确定最大值是什么或是否存在。然而,我遇到了这个错误。然后我删除了%userprofile%\Documents\IISExpress并编辑了我的.csproj文件,将端口从63584移动到61111。重新加载后,我的项目正常启动了。 - Andy V

5

我遇到了同样的问题,IIS Express抱怨关于 http://localhost:50418/,上面的解决方案都对我没有用。

我去了项目文件夹 --> .vs --> config --> applicationhost.xml

在标签<sites>中,我发现我的Web应用程序有两个绑定已注册。

<site name="myApp.Web" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\git\myApp\myApp.Web" />
    </application>
    <bindings>
        <binding protocol="https" bindingInformation="*:44332:localhost" />
        <binding protocol="http" bindingInformation="*:50418:localhost" />
    </bindings>
</site>

解决问题的方法是删除绑定指向 *:50418:localhost。

使用VS2017和IISExpress v10。


实际上总是有两个绑定,因为它们用于不同的协议。我一直使用这些而没有问题,它根据使用的协议使用端口。删除这些是不正确的...问题出在其他地方... - Alexander

4

如果你重启Visual Studio,就能解决这个错误。这样做的效果与重启Microsoft.VisualStudio.Web.Host.exe*32进程相同。


3
我的问题是因为我在项目设置中启用了SSL。由于我不需要在本地运行项目时使用SSL,因此我只需禁用它即可。
在Visual Studio 2015中: - 选择解决方案资源管理器中的项目。 - 在“属性”窗口中将“SSL启用”设置为False。 - 然后我就可以运行该项目了。
在我的情况下,我收到一个关于端口443正在使用的错误,因为这是项目的SSL URL设置的端口。

2
我遇到了相反的问题,我实际上需要在我的项目中启用SSL。很高兴看到我不是唯一因为SSL而看到这个错误的人。 - tenderloin
1
我必须这样做来设置它使用 SSL,然后再切换回不使用(我的应用程序不应该使用 SSL)。 - Rainhider

3

运行netstat -abn命令时,我发现软件“Duet Display”正在保留大量位于~51000范围内的端口。

关闭它解决了我的问题。


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