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

一些网络项目给我带来了问题,而其他的工作很好。我决定关注其中一个有问题的问题。 我在Windows 7上使用Visual Studio 2013。我想我是以管理员身份运行它的,窗口标题说PROJECT NAME - Microsoft Visual Studio (Administrator).

当我试图运行项目时,我得到一个弹出框说:

无法启动IIS Express Web服务器。

为站点“site NAME”注册URL“http://localhost:62940/”失败 “/”应用程序。错误描述:访问被拒绝。(0 x80070005)。< / p >

这似乎不是完全 不常见的,但我已经尝试了许多建议,但没有运气:

  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中从<binding protocol="http" bindingInformation="*:62940:localhost />更改为<binding protocol="http" bindingInformation="*:62940:/>,并尝试运行。(它确实将错误消息更改为... URL "http://*:62940/" ...

  4. 重新安装IIS 8.0 Express

  5. 重新安装Visual Studio 2013

我无计可施了,我做错了什么?

如果我改变项目的端口(例如55555),它开始…这不是一个理想的解决方案,因为这些项目是由几个人共同完成的。也许端口被其他东西阻塞了?如果是的话,有没有什么简单的方法来检查?

端口62940似乎是空闲的。运行netstat不会显示任何应用程序在监听它。肯定还有什么地方出了问题。

几个月没碰这个项目了,今天我试着开始做。它起作用了,但我不知道为什么。

202458 次浏览

尝试(作为提升管理员)

netsh http delete urlacl url=http://*:62940/

我也遇到过类似的问题。我不完全确定如何描述实际的错误,但似乎预订中的主机名是不正确的。在一个升高的命令提示符中试试这个…

netsh http delete urlacl url=http://localhost:62940/

... 然后……

netsh http add urlacl url=http://*:62940/ user=everyone

并重新启动您的网站。它应该会起作用。

最后我清理了项目文件(csproj)和applicationhost。Config (iis express),包含有关iis express配置的所有条目。从那以后,它起作用了。

解决这个问题的理想方法是使用IIS快速托盘图标来停止导致问题的网站。为此,单击任务栏右端向上的小箭头,并右键单击IIS Express图标。这将弹出一个小窗口,显示IIS Express当前正在运行的网站。

IIS Express弹出

如果你点击“查看网站”下的一个项目,你可以选择停止该网站。或者,您可以单击窗口底部的退出项来停止所有网站。

这将使您能够在Visual Studio中进行调试。当您再次开始调试时,IIS Express将自动重新启动网站,并且应该能够分配端口。

如果失败了,你就得用下流的方法。打开Windows任务管理器并终止Microsoft.VisualStudio.Web.Host.exe*32进程,然后可以正常运行项目。注意,这将完全杀死IIS Express,这意味着所有的网站都将停止,所以如果你想调试其他网站,你必须在VS中重新启动每个网站。首先尝试弹出图标的方法,因为它更干净、更安全。

不知道这能不能解决你的问题,但对我有用。

更新感谢JasonCoder(见下面的评论)在Win10上添加,该进程是Microsoft.VsHub.Server.HttpHost.exe

有时此错误可能是在同一台机器上运行的另一个Visual Studio版本。

我通过改变项目的港口解决了这个错误。

我做了以下步骤:

1 -右键单击项目 2 -进入属性。
3 -进入服务器页签 4 -在选项卡部分,更改项目URL为其他端口,如8080或3000

好运!

转到项目“Properties”=>“Web”,在“Servers”部分将端口更改为其他不使用的端口并保存它。您将被要求创建一个虚拟目录,并单击“是”。现在运行这个项目,它就可以工作了。

在尝试了许多建议的解决方案都没有成功之后,我只是重新启动了我的电脑。从那以后,这个问题就不再发生了。

在我的情况下,它开始工作,一段时间后停止工作,IIS Express报告端口正在使用 netstat -ab显示Chrome正在使用该端口。在我退出Chrome后,它又开始工作了 但是,我不确定为什么Chrome会占用这个端口

最近也出现了这个错误。尝试了以上所有的修复,但没有一个有效。

要禁用它,在命令提示符中键入services.msc,然后右键单击并禁用互联网连接共享。我也编辑了它的属性,在启动时禁用。我的现在看起来是这样:服务截图

当使用Visual Studio 2015时,解决方案可能与以前的答案略有不同。VS2015在与解决方案文件相同的文件夹下创建了一个隐藏文件夹.vs。在这个文件夹下是一个包含applicationhost.config的config文件夹。删除这个文件(或整个。vs文件夹),然后启动VS2015重新创建它可以修复这个错误。

如果你在安装Visual Studio 2015后出现这种情况,你可以在系统事件日志中看到类似Unable to bind to the underlying transport for [::]:{your_port}. . The IP Listen-Only list may contain a reference ...的错误消息,那么你可能缺少一个注册表项。

在管理命令提示符:netsh http add iplisten ipaddress=::下运行这个命令来修复它。

我找到了详细描述的解决方案在这里

这发生在我在Windows 7和VS 2013上,当我在构建后在浏览器上查看一个项目时。我只需要关闭浏览器“Chrome”,然后确保端口没有在我的网络活动中使用一些实用工具(卡巴斯基),然后再次尝试,工作没有任何问题。

我在Windows 10和VS 2013上就遇到过这种情况。 显然存在IIS Express句柄的最大端口号。 62546以上的端口不适合我

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

如果重新启动Visual Studio,就可以解决这个错误。它与重新启动Microsoft.VisualStudio.Web.Host.exe*32进程具有相同的效果。

看起来每个人都有自己的问题 只是分享我在VS2015 (Windows 8.1)中修复这个问题的方法,我的解决方案有6个网站(不是web应用程序)

  1. 打开解决方案文件*.sln
  2. 修改解决方案文件字符串 VWDPort = "34781"(如果有更多VWDPort,请在解决方案中使其唯一 那1个网站,我在记事本+2)。

参见样例解决方案文件ProjectSection(WebsiteProperties):

Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "BOSTONBEANCOFFEE.COM", "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM", "{5106A8F5-401B-4907-981C-F37784DC4E9D}"
ProjectSection(WebsiteProperties) = preProject
SccProjectName = ""$/PrismRMSystem/VS2012/WebOfficeV4.root/WebOfficeV4", IPYHAAAA"
SccAuxPath = ""
SccLocalPath = "..\.."
SccProvider = "MSSCCI:Microsoft Visual SourceSafe"
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
ProjectReferences = "{04e527c3-bac6-4082-9d39-aad8771b368e}|YBTools.dll;{5d52eaec-42fb-4313-83b8-69e2f55ebf14}|AuthorizeNet.dll;{d8408f53-8f1e-4a71-8b05-76023b09b716}|AuthorizeNet.Helpers.dll;{77ebd08a-de0f-4793-b436-fad6980863e6}|WEBCUSTCONTROLS.dll;"
Debug.AspNetCompiler.VirtualPath = "/BOSTONBEANCOFFEE.COM"
Debug.AspNetCompiler.PhysicalPath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\BOSTONBEANCOFFEE.COM\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.KeyFile = "Key\StrongKey.snk"
Debug.AspNetCompiler.DelaySign = "false"
Debug.AspNetCompiler.AllowPartiallyTrustedCallers = "false"
Debug.AspNetCompiler.FixedNames = "true"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/BOSTONBEANCOFFEE.COM"
Release.AspNetCompiler.PhysicalPath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\BOSTONBEANCOFFEE.COM\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.KeyFile = "Key\StrongKey.snk"
Release.AspNetCompiler.DelaySign = "false"
Release.AspNetCompiler.AllowPartiallyTrustedCallers = "false"
Release.AspNetCompiler.FixedNames = "true"
Release.AspNetCompiler.Debug = "False"
VWDPort = "34781"
SlnRelativePath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"
EndProjectSection

在我的情况下,我试图从项目属性更改URL,重新启动VS,重新启动计算机,没有帮助我,只有这个SLN文件操作解决了我的问题。

对我来说,这个问题完全与Oracle ODP工具的坏安装有关。我卸载并重新安装,一切都重新工作了。

我遇到了同样的错误消息,但它看起来像是由IIS Express生成的。这篇文章帮助我解决了它

博士TL;

在管理命令提示符下运行以下命令:

> netsh http add iplisten ipaddress=::

在Visual Studio 2015:

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

我写它是为了获取信息。

删除项目中的文件。

清洁>构建>项目开始后

我的问题原来是我在项目设置上启用了SSL。我只是禁用了它,因为在本地运行项目不需要SSL。

在Visual Studio 2015:

  • 在解决方案资源管理器中选择项目。
  • 在“属性”窗口中将“SSL启用”设置为“False”。
  • 我能够运行这个项目。

在我的情况下,我得到了一个关于端口443的错误,因为这是项目SSL URL上设置的端口。

当我试图从远程位置访问我的网站时,这发生在我身上:

首先,applicationhost。config (VS2015)包含标准:

<binding protocol="http" bindingInformation="*:64376:localhost" />

为了从网络中的远程位置访问我的站点,我添加了(步骤1):

<binding protocol="http" bindingInformation="*:64376:192.168.10.132" />

然后,我以Admin权限进入CMD(步骤2):

netsh http add urlacl url=http://*:64376/ user=Everyone

作为第3步,我在防火墙中添加了一条规则。

netsh advfirewall firewall add rule name=”IISExpressWeb” dir=in protocol=tcp localport=64376 profile=private,domain remoteip=localsubnet action=allow

然后,当我试图再次运行解决方案时,我得到了这个错误。

解决方案:我似乎已经做了一切正确的,但它没有工作,直到我运行netsh也为现有本地主机规则:

netsh http add urlacl url=http://localhost:64376/ user=Everyone

现在,它又起作用了。

在我的情况下,原来我在Windows功能的控制面板中没有启用IIS。 参考图像,因为SO不让我上传 < / p >

在VS2017。我必须编辑我的.sln文件,并必须更新VWDPort = "5010"设置。这里发布的其他解决方案都不起作用。

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

在我的例子中,我在Properties->Web选项卡上检查了设置覆盖应用程序根URL。我以前以管理员身份运行VS时使用它,但现在我在非管理员帐户中运行它,它导致了错误。

上面没有一个对我有用,但这里的解决方案https://forums.asp.net/t/1979442.aspx?Cannot+change+the+project+URL+in+project+properties做到了。

一旦我在记事本中打开了解决方案文件,我就找到并替换了导致问题的端口,保存它并在visual studio中重新打开解决方案。第一次我选择的端口号与导致我的问题的端口号仅相差1,但我仍然得到相同的错误。当我改变到一个端口,大约10,000,它工作。我不确定这是否有区别。

运行netstat -abn我注意到软件“Duet Display”在~51000范围内保留了数千个端口。

关闭它解决了我的问题。

我在《JetBrains Rider》中遇到了这个问题,特别是对于80和90位端口,它与其他端口以及visual studio一起工作。

以管理员身份运行后,这个问题就解决了。

是的,我同意,最重要的答案是真正的专业解决方案。下面是一个针对中间体的例子:

解决方案资源管理器

  1. 在项目上选择卸载项目
  2. 再次右键单击并选择编辑ProjectName.csproj
  3. 删除这3行
<DevelopmentServerPort>0</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:62940/</IISUrl>
  1. 保存并重新加载项目,就可以开始了。

得到同样的问题,IIS快递抱怨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。

在Visual Studio 2019中 只需删除调试配置文件并创建一个新的

  1. 转到项目属性调试选项卡
  2. 请先尝试更改端口Web服务器设置
  3. 如果更改端口无效,则删除调试配置文件并创建一个新的警告,确保您知道以前的设置
我在Windows 10上从Visual Studio 2019运行应用程序时遇到了同样的问题。 经过一段时间的谷歌搜索和尝试各种建议的解决方案都没有成功,我确定“访问拒绝”错误是由于我的应用程序使用的端口号(50403)位于“排除的端口范围”。< / p >

可以使用以下命令查看被排除的端口范围:

netsh interface ipv4 show excludedportrange protocol=tcp

在谷歌了一段时间后,我发现两个最有可能造成这些排除范围的罪魁祸首是Docker和Hyper-V。我的电脑上没有安装Docker,但是安装了Hyper-V。

我的解决方案

  1. 禁用Hyper-V:控制面板->程序和功能->打开或关闭Windows功能。取消勾选hyper - v
  2. 重新启动计算机。
  3. 将您正在使用的端口添加到端口排除范围:netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent
  4. 使再能hyper - v
  5. 重新启动计算机

我将我正在使用的端口添加到排除列表中,以确保我在重新启用Hyper-V后不会再次遇到这个问题。在步骤4和5之后,当我查看排除的端口范围时,我可以看到Hyper-V保留了一个端口范围,从我的端口后的下一个端口开始。

Excluded Port Range

我的应用程序现在完美地工作了!

对我有效的是禁用所有其他网络适配器,除了我目前正在使用的这个。事件查看器中的事件为: Unable to bind to the underlying transport for [::]:50064. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number. < / p >

因为我有VMware Workstation, Docker(因此Hyper V)一些VPN客户端,我有很多网络接口。

我也阅读了这个帖子的答案和评论,并尝试了一些解决方案。

然后我在谷歌上搜索了一下,这对我来说很有用

https://www.c-sharpcorner.com/blogs/iis-express-failed-to-register-url-access-is-denied

没有评论任何人的答案,因为我没有读这里写的东西,所以它需要一个新的回答帖子。 这里有回答,谈论netsh wlan的东西,但我没有看到确切的解决方案。 如果有人写了完全相同的解决方案请告诉我,那么我可以在那里注释并删除它

我偶尔也会用VS2019。

一般的问题是端口已经被占用或不可用,有很多可能的原因,导致这里有很多不同的答案。

我想添加什么帮助我:问题只是暂时的,我再次尝试没有任何改变,它只是工作。所以我建议先测试一下,因为这是最简单的方法。

这是Visual Studio 2019,在尝试了很多失败的建议(包括更改端口号等)后,我通过删除在项目根文件夹上生成的名为“__abc0”的文件来解决问题。只要这个文件被删除,一切就开始工作了。

朋友们,我读了所有2页浏览量的评论,仍然没有一个对我的情况有帮助。虽然,有些人在一定程度上有所帮助。最后,这是帮助解决我的情况,我认为这可能是其他人的情况。

我的笔记本电脑里也有一个docker桌面,我在docker中运行一些。然后,我打开了我的VS,想调试我的特定应用程序。虽然VS 2019和web api配置为使用Https端口,但http端口导致了这个问题。在尝试了答案中提到的所有步骤之后,我选择了自己的直觉

  1. 停止并杀死我的docker桌面应用程序。
  2. 然后停止运行IIS Express。
  3. 只需简单地按下F5(调试),瞧!

所以,这个问题有很多原因,这取决于个人的机器状态和他们拥有的应用程序。

我尝试删除。VS文件夹,删除用户配置文件文件夹中的IISExpress文件夹,但是,如果我的VS不使用它们,我猜我的Docker应用程序必须接管剩余的IP地址。

所以,请检查任何其他可能占用或消耗某些跨度或范围的ip的应用程序,并尝试杀死它们。在我的情况下,我在运行我的VS后再次启动Docker,到目前为止,事情正在按照预期进行!

对我来说,解决它的方法是从VPN断开连接(我们使用FortiClient)

这是我找到的唯一解决办法

net stop winnat


net start winnat

感谢Matt

首先,以管理员身份运行VS解决了这个问题。但最奇怪的是,我已经检查了“以管理员身份运行”。设置快捷方式,但似乎不工作。

看起来我们需要显式地点击“以管理员身份运行”;从快捷方式上下文菜单中选择

enter image description here

enter image description here