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


168

一些Web项目导致我出现问题,而其他项目则正常运行。我决定专注于有问题的一种。我在Windows 7上使用Visual Studio2013。我想以管理员身份运行它,窗口标题为PROJECT NAME - Microsoft Visual Studio (Administrator)

当我尝试运行该项目时,会弹出一个对话框:

无法启动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/,重新启动,并从改变<binding protocol="http" bindingInformation="*:62940:localhost /><binding protocol="http" bindingInformation="*:62940:/>%userprofile%\Documents\IISExpress\config\applicationhost.config想跑。(它确实将错误消息改为... URL "http://*:62940/" ...

  4. 重新安装IIS 8.0 Express

  5. 重新安装了Visual Studio 2013

我机智的尽头,我在做什么错?

如果我更改项目的端口(例如更改为55555),它将启动...这不是理想的解决方案,因为这些项目是由多个人共同完成的。也许端口被其他东西堵住了?如果是这样,是否有一种简便的方法来检查什么?

端口62940似乎是免费的。正在运行netstat不会显示任何正在监听的应用程序。其他事情一定是错误的。

在几个月没有接触后,我今天尝试启动该项目。它起作用了,但我不知道为什么。


运行netstat -aon | findstr以查看另一个应用程序是否也监视端口62940。如果是,则无法监视该端口,而必须切换到另一个端口。不要更改applicationHost.config或netsh http它们显然不是原因。
Lex Li

netstat按照建议跑了。似乎没有应用程序正在监视端口62940。其他某些问题一定是错误的。
莱纳斯(Linus)

2
重新启动对我有用。
Patrick Borkowicz 2015年

Answers:


91

我通过更改项目的端口解决了该错误。

我做了以下步骤:

1-右键单击项目。
2-转到属性。
3-转到服务器选项卡。
4-在选项卡部分,更改其他端口的项目URL,例如8080或3000。

祝好运!


9
就像Microsoft.VisualStudio.Web.Host.exe*32Avrohom Yisroel所说的那样,杀死进程。
rotgers,2016年

在ASP.NET Core 1.0 RC1上也对我有用,尽管它现在位于“调试”选项卡中,并且我不得不重新启用SSL启用以生成新端口,然后将其复制到“启动URL”框中。stackoverflow.com/a/35706891/134761
angularsen,2016年

16
为什么要投票呢?这不是解决方案,而是一种解决方法
Paleta 2016年

就像@rotgers所说的,我不得不终止一个进程。但是我的是ServiceHub.Host.CLR。我有5个或类似的东西,然后杀死了我能杀死的东西。然后iis解锁。
MartinJH

如果您使用VS 2017运行应用程序,请转到“ Web”选项卡,然后在Project Url
Fortune

59

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

IIS Express弹出

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

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

如果失败,则必须以肮脏的方式进行。打开Windows Task Manager并终止该Microsoft.VisualStudio.Web.Host.exe*32进程,然后可以正常运行该项目。请注意,这将完全杀死IIS Express,这意味着所有网站都将停止,因此,如果要调试其他网站,则必须重新启动VS中的每个网站。首先尝试弹出图标方法,因为它更干净,更安全。

不知道这是否可以解决您的问题,但是对我有用。

更新感谢JasonCoder(请参阅下面的评论)在Win10上添加了该过程,Microsoft.VsHub.Server.HttpHost.exe


3
Microsoft.VsHub.Server.HttpHost.exe是在Windows 7和VS2015上实现的功能
JCisar

当我尝试运行项目时,此过程将再次运行。我该如何摆脱呢?
nmit026 '17

2
@ nmit026该过程应该再次运行,这就是您的网站的运行。杀死它的目的是释放端口上似乎已拥有的锁。下次运行时,它将重新启动进程,并正确分配端口。
阿夫罗洪·伊斯洛尔

51

尝试(以高级管理员身份)

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

3
这实际上为我工作。我认为出于某种原因我不得不在MSVS 2010中保留端口,然后升级到2013(快速)并开始得到错误消息。我尝试删除然后添加(localhost->'*')无效。然后只是删除而没有添加就可以了。
crokusek 2014年

3
这也对我有用,但仅在以管理员身份运行时才有效。否则,它说找不到文件。
塞斯

3
尝试netsh http show urlacl查找有冲突的条目。
shlgug

4
这有所帮助,但就我而言还不够。我还必须使用netsh http add urlacl url=http://localhost:62940/ user=Everyone
sboisse

7
URL保留删除失败,错误:2系统找不到指定的文件。
工具包

45

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


我不必重新启动VS2015,只需尝试重新启动应用程序。另外,我必须在项目属性页面的Web选项卡中单击“创建虚拟目录”。
道格·兰佩

我的问题是另一个项目的.vs / config / application ... config正在使用该端口。从该应用程序配置中删除端口后,我就可以使用了。
James McDonnell'Dec

我有同样的问题。我通过在applicationhost.config中查找此端口来解决它。应该有一个标签“ site”,其中包含与项目设置中定义的端口相同的端口。如果Visual Studio创建了一些错误的新站点标签,请将其删除。

36

是的,我同意,最重要的答案实际上是专业的解决方案,

这是一种中间体

解决方案资源管理器

右键单击项目,选择“ 卸载项目”

再次右键单击并选择Edit ProjectName.csproj

删除这三行

<DevelopmentServerPort>0</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:62940/</IISUrl>

保存并重新加载项目 ,一切顺利


我已经足够卸载-无需从.csproj文件中删除任何行。
Valdez V.

不错的解决方案。在此之前,必须重新启动计算机才能解决此问题-非常感谢您提供的出色解决方案。
nspire

我没有看到拆卸的零件,我只是去了那里,改变了港口,它起作用了
Belarmino Vicenzo

35

最近也有此错误。尝试了以上所有修复程序,但均无效果。

要禁用它,请services.msc在命令提示符下键入,然后右键单击并禁用Internet连接共享。我还编辑了它的属性,以在启动时禁用它。我的现在看起来像这样:服务捕获屏幕截图


2
在Windows 10周年纪念版中,它称为“移动热点”,可以通过在“开始”菜单中键入“ hotspot”并选择“更改移动热点设置”来打开。
MathiasRönnlund'16 -10-04

正如迈克尔所说,问题出在ICS。但是您不需要禁用该服务,只需重新启动它,该端口将是空闲的。
Daniel Genezini '18

25

当我尝试从远程位置访问我的网站时,发生了这种情况:

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

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

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

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

然后,我以管理员权限进入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

现在,它又可以工作了。


1
最后一个命令正是我使事情再次运行所需的命令
peterkodermac

谢谢你 这与尝试远程访问该站点后陷入的黑洞完全相同。
benmccallum

24

我只是有一个类似的问题。我不太确定如何描述实际的错误,但是保留中的主机名似乎不正确。在提升的命令提示符下尝试此操作...

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

... 然后 ...

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

并重新启动您的网站。它应该工作。


19

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

TL; DR

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

> netsh http add iplisten ipaddress=::

1
@amy netsh配置Windows服务器角色/功能。从本质上讲,这使http和ip可以侦听localhost。对于那些感兴趣的人,这里是Microsoft的文档:technet.microsoft.com/zh-cn/library/…–
Micah

干杯@Micah,从那时起,我必须撤消此操作,因为所有本地配置的IIS站点都停止工作。.:/
军队

2
修订:我只需要添加127.0.0.1作为IP即可收听,所有工作现在即可进行。再次感谢您的解决方案;)
军队

16

在尝试了许多建议的解决方案而没有成功之后,我只是重新启动了PC。之后,该问题不再发生。


作为一个小提示-我从这里尝试了所有解决方案。我什至尝试关闭然后重新启动PC,但它没有工作。然后一位同事建议我实际上使用RESTART而不是SHUT DOWN并成功。扑克脸:| 在Windows 8.1上使用Visual Studio 2015。我在本地运行的各种VS解决方案中经常发生此错误。
Prisecaru Alin

15

在Windows 10上从Visual Studio 2019运行我的应用程序时,遇到相同的问题。经过一段时间的搜索和尝试各种建议的解决方案均未成功后,我确定“访问被拒绝”错误是我的应用程序使用的端口号的结果(50403 )属于“排除的端口范围”。

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

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保留了一个端口范围,该范围从我端口之后的下一个端口开始。

排除的端口范围

我的应用程序现在运行良好!


2
完美的解决方案!我安装了导致相同问题的码头工人。非常感谢
Richa Garg

2
只需使用命令即可识别排除端口,以便它们可以选择空闲端口,这是port_is_in_use问题的简单解决方案。无需与Hyper-V或其他任何使用/保留端口的服务
打交道

@ HPWP7是的,您是正确的,简单的解决方案是选择另一个端口。在我的情况下,我必须使用端口50403,因为该服务会从我无法控制的外部服务中消耗掉。因此,我需要保留端口50403。(这是一种荣幸,很高兴能为您提供帮助)
Philip Trenwith

谢谢!我花了一个小时尝试其他一切都没有运气。
Max Favilli

谢谢!在执行步骤3的命令之前,我只需要重启PC一次,并且启动后不启动任何(docker)容器,就可以跳过卸载/重新安装的步骤。幸运的是,我只重启了一次,但这很幸运。可能要花两两
Malte R

13

我最后用有关iis express配置的所有条目清理了项目文件(csproj)和applicationhost.config(iis express)。在那之后,它起作用了。


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

是的 这个在VS 2013中为我工作。我清除了我的网站条目,<sites>然后按Ctrl+F5。它显示错误,无法启动IIS Express。因此,右键单击该项目,转到属性,在Web下的项目URL文本框旁边(在http://localhost:3758/指定的位置),单击“创建虚拟目录”。现在Ctrl+F5很好地启动了网站。
Gopinath

11

如果在安装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=::进行修复。

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


即使您更改项目端口,也需要netsh http add iplisten ipaddress=::感谢@Ignas
OldTrain '16

9

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


如果无法启动的URL是您添加到主机文件中的虚假URL,这也是最可能的原因
MrLore

5

这在Windows 10和VS 2013上发生在我身上。显然,IIS Express处理的最大端口号是。高于62546的端口对我不起作用。


1
我不能确定最大值或最大值。但是,我遇到了这个错误。然后%userprofile%\Documents\IISExpress,我删除并编辑了.csproj文件,将其从端口63584移至61111。重新加载后,我的项目开始正常。
Andy V

3

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


1
没有重启,甚至计算机也帮助了我。对我来说不正确的解决方案。
尤金·博西科夫

1
对我来说,它起作用了,请尝试更新Visual Studio。您也可以尝试其他解决方案。
meJustAndrew '16

2

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

在Visual Studio 2015中:

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

在我的情况下,我收到有关正在使用的端口443的错误,因为这是在项目的SSL URL上设置的端口。


1
我有相反的看法,实际上我需要在我的项目上启用SSL。很高兴看到我不是唯一因SSL看到此错误的人。
里脊

1
我必须执行此操作才能将其设置为使用ssl,然后又恢复为不使用(我的应用程序不应使用ssl)
Rainhider17年

2

IIS表达抱怨http:// localhost:50418 /的问题相同,而以上解决方案都不适合我。

进入projektFolder-> .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。


嘿,我们在这里谈论的是IISExpress,而不是IIS。我什至没有这三行。
yww325

1

转到项目“属性” =>“ Web”,然后在“服务器”部分将端口更改为其他未使用的端口并保存。系统将要求您创建一个虚拟目录,然后单击“是”。现在运行该项目,它将立即运行。


这与弗朗西斯科三周前写的答案完全相同。
约翰尼·博恩斯

1

以我为例,它起初是工作的,不久后停止工作,IIS Express报告该端口正在使用。
netstat -ab显示Chrome正在使用该端口。我退出Chrome后,它又开始工作了。
但是我不确定为什么Chrome会占用该端口。


这对我有用。我使用的是“浏览方式”,但没有运行调试器就在Firefox和Chrome之间切换。在此过程中一定挂了一些东西。(Win7 / VS2015)
Technobabble

1

在Windows 7和VS 2013上,这是我在构建后在浏览器上查看项目时发生的。我只需要关闭浏览器“ Chrome”,然后使用某些实用程序(Kaspersky)确保网络活动中未使用该端口,然后再次尝试即可正常工作。



1

我写它供参考。

删除项目中的文件。

After Clean> Build> Proje Start之后


1

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


1

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

关闭它解决了我的问题。


这种方法可能是最好的方法,因为它不仅拼命尝试解决问题,而且还有助于找到实际原因。在我的情况下,其他一些进程偶然地选择了IIS想使用的相同端口,并且这个答案帮助我终于找到了罪魁祸首。
causa prima

1

我在JetBrains Rider中遇到了这个问题,特别是针对端口80和90位,它与其他端口以及Visual Studio一起使用。

以管理员身份运行后,此问题得以解决。


那是因为您试图打开一个<1024的端口。这些是服务端口。
Bluebaron

是的,的确如此,但是以管理员身份运行确实可以使您绑定到这些端口
Workabyte

是的,但是您不应该以管理员身份绑定这些端口。这很危险。
Bluebaron

1

在Visual Studio 2019中, 只需删除Debug配置文件并创建一个新的Do The Trick

  1. 转到“调试”选项卡中的“项目属性”
  2. 请先尝试更改端口Web服务器设置
  3. 如果更改端口不起作用,则删除调试配置文件并创建新的单警告,确保您知道以前的设置

1

对我有用的是禁用除我当前正在使用的适配器之外的所有其他网络适配器。事件查看器中的事件为: 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.

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



0

看起来每个人都有自己的问题仅解决了我在VS2015(Windows 8.1)中解决此问题的工作,我的解决方案就有6个网站(非Web应用程序)

  1. 打开您的解决方案文件* .sln
  2. 在记事本中更改解决方案文件字符串VWDPort =“ 34781”(如果您的网站超过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文件操作解决了我的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.