ASP.NET 5 MVC:无法连接到Web服务器'IIS Express'


187

我在做什么:

删除applicationhost.config位于中的Documents\IISExpress\config,不会更改错误消息。(和中也有一个IISExpress文件夹。)program filesprogram files (x86)

我注意到的东西,我不知道这是不是一个问题:

找不到参考文件“ lib / jquery-validation / jquery.validate.js”。

我有一个带有rawcap的转储,但在那里没有太多注意。那里有些东西:

“ Framework”:{“ FrameworkName”:“ DNXCore,Version = v5.0”,“ FriendlyName”:“ DNX Core 5.0”,“ ShortName”:“ dnxcore50”,“ RedistListPath”:null}

我没有注意到问题,但是我有网络数据,如果可以帮助找出为什么我无法连接到Web服务器。我RST,ACK立刻得到一个信息,所以我猜测端口已关闭,无论此Web服务器是否都未设置。

有关此问题的更多信息:/ trace:error 800700c1错误

我试过了:

  • 删除applicationhost.config(并更改端口号)
  • 以管理员身份运行Visual Studio
  • 删除文档中的IISExpress文件夹(更改错误消息,直到重新安装该文件夹)
  • 开启和关闭ssl,将网址复制到启动框。(注意:我没有使用ssl)
  • 清除所有sfc / scannow错误
  • 从x86版本和64位版本开始iisexpress


1
尝试当您打开Visual Studio右键打开以管理员身份..
哈齐姆Torab

我正在尝试别人给我的所有建议,即使我以前曾经尝试过。
Sarek

您可以打开一个新项目,检查是否正常吗?重新启动电脑?将项目移至其他目录
塞巴斯蒂安506563,2016年

1
谢谢,但是那也没有用。
Sarek

Answers:


252

在安装Visual Studio 2015 Update 2之后,我开始遇到相同的错误。我没有运气就尝试了上面的一切。但是,我找到了适合我的解决方案:

  1. 删除YourSolutionFolder \ .vs \ config \ applicationhost.config文件(注意:.vs是隐藏文件夹)
  2. 打开Visual Studio,右键单击网站>属性>调试选项卡> Web服务器设置>应用程序URL-更改端口号。

伙计,我的错误又回来了,在另一个站点上也发现了这个错误,但是它一直在提供该死的错误。惹我生气 我已经运行了Web控制台,但是没有监视程序,因此我只能按ctrl + s刷新。
勒内Sackers

天哪,它有效。我删除了文档中的IISExpress文件夹,然后删除了该文件,然后开始出现此错误,但是可接受的答案是解决方案:stackoverflow.com/questions/33166403/…现在可以正常工作了:
勒内Sackers

3
对我来说是.vs\config\<MyProject>\config\applicationhost.config
laggingreflex '19

1
您在哪里看到web site您需要右键单击?
CodyBugstein,

13
对于Net Core 2.2项目-经过艰苦的尝试,从删除.vs文件夹,删除IIS Express配置,更改端口号,更改绑定以及以管理员身份运行VS之后,我通过1.关闭VS,2。删除最终解决了问题launchSettings.json3.打开VS里面重新生成launchSettings.json。显然该文件已损坏或不正确,甚至更改为导致失败时也是如此。
Quinton Smith

186

退出VS并删除(project).vs \ applicationhost.config文件。重新启动VS。它应该开始工作。


19
这在VS2017中对我有用,而无需更改端口。
mlienau

4
在为我完成此操作之后,需要以管理员身份运行Visual Studio,并且可以工作,谢谢!
DigaoParceiro'7

5
特别是作为管理员运行对我很重要。(虽然我有Asp.net核2.0 VS2017。
巴特Mensfort

1
删除了整个.vs文件夹并为我工作,就是这样
FindOutIslamNow

9
重新启动VS2017并没有解决,但重新启动计算机对我来说也解决了。无需更改端口或删除文件夹。希望它对别人有帮助。
Tonmoy

32

尝试使用其他端口。我刚刚建立了一个新的Core 1.0 RC1项目,并遇到了相同的错误。

  • 右键单击Web项目
  • 调试标签
  • 切换启用SSL,然后再次打开,它将生成一个新的随机端口
  • 复制SSL URL并粘贴到“启动URL”框中
  • 运行项目

为我工作(TM)。

答案来自:https : //stackoverflow.com/a/28650554/134761

在此处输入图片说明


1
它有效,但仅当我使用端口60000时才有效。端口6000返回错误:端口不安全。
EKanadily

在Visual Studio 2019中不起作用-每次都使用相同的端口。
EJoshuaS-恢复莫妮卡

@ EJoshuaS-ReinstateMonica我相信这已经改变了很多。看一下如何Startup配置您的班级以及拥有哪些appsettings.json文件。还Properties\launchSettings.json可以在本地启动不同的配置文件。 docs.microsoft.com/en-us/aspnet/core/fundamentals/... dejanstojanovic.net/aspnet/2018/december/...
angularsen

27

更新项目的端口号时,我在.net core 2.0中遇到了此问题。

我可以通过两个步骤来解决问题:

  • 步骤1:删除隐藏在主解决方案文件夹中的.vs文件夹。(在此之前关闭Visual Studio),然后再次启动Visual Studio时,Visual Studio会自动创建其中的该文件夹和文件(applicationhost.config)。
  • 步骤2:对于多个启动项目,如果仍然遇到问题,则一个接一个地运行项目作为启动项目,然后作为多个启动项目运行。

解决方案成功了。谢谢:)怎样也删除.git文件夹?
krunal.cp

24

我在.net core 2.1(Visual Studio 15.9.6版)上遇到了此问题。当我删除.vs文件夹时,我重新打开了Visual Studio,问题仍然存在。下面对我有用的解决方案:

  1. 删除.vs文件夹(这是一个隐藏文件夹)。
  2. 重新启动计算机。

其他解决方案:

  • 关闭Visual Studio,从项目文件夹中删除bin和obj文件夹。打开项目,然后重建解决方案。
  • 尝试以管理员身份运行Visual Studio。
  • 清洁溶液,然后重建
  • 1)清洁溶液。2)退出Visual Studio。3)删除.vs文件夹4)重新打开Visual Studio

通过仅关闭Visual Studio,删除.vs文件夹并再次声明Visual Studio,我能够做到这一点。
罗伯特·布拉顿

是的,它对某些人而言并非如此。不知道为什么它不起作用。唯一要做的是重新启动计算机。
Daniaal

2
蓝屏之后得到了这个。必须删除.vs文件夹并重新启动计算机。重新启动Visual Studio是不够的。
johnb '19

1
我的步骤压缩为:1)清洁溶液。2)退出Visual Studio。3)删除.vs文件夹
samneric,

1
@samneric谢谢您,我将为您添加答案的解决方案:)
Daniaal

12

以管理员权限运行VisualStudio并运行项目。然后关闭VisualStudio和所有错误,然后以普通用户身份再次运行VisualStudio。

这为我做到了。

看起来IIS必须使用admin特权将某些内容写入一些配置(端口80不适用于普通用户,但端口6767可以正常工作)。


5
只有管​​理员权限才允许应用程序绑定到小于1024的端口号。这就是6767为您工作的原因。
Lex Li

12

我有同样的问题,我可以通过更改端口号来解决。

  1. 右键单击项目并选择属性

  2. 转到调试部分

  3. 在“ Web服务器设置”下,更改应用程序URL端口[只需增加一个:)]

在此处输入图片说明


10

在我的情况下,这是其他一些应用程序在IIS Express试图连接的同一端口上侦听。我必须运行netstat -ao以查看使用相同端口和关闭应用程序的进程的PID。就我而言,应用程序是Viber。


10

对我有用的解决方案是:关闭VS项目在“文件资源管理器”中,导航到该项目并删除整个“ .vs”文件夹。重新启动项目。以“调试”方式运行显然,这与“ applicationhost”有关.config”文件。

请享用!


10

这些回答中有很多都没有完全解决当前的问题。对我来说,真正的问题是我在applicationhost.config文件中使用相同的端口进行了两次绑定,并且没有打开第二个(非本地主机)绑定的端口。VS将允许您在这些情况下仍然运行,但前提是您处于管理员模式(因此,以上所有答案均如此)。

您实际上是在同一端口上创建应用程序的两个IIS Express实例,因此更改applicationhost.config文件中的端口之一将使您可以继续进行操作。但是,有两个不同的applicationhost.config文件。您将要选择一个在项目属性中看到具有绑定IP和端口的端口

在此处输入图片说明

转到可以查看项目解决方案和项目文件夹的文件夹(在文件资源管理器中显示隐藏的项目)。导航到隐藏的.vs文件夹->“ YourAppName”文件夹-> config。它应该包含您在项目属性中看到的绑定信息。

例:

<bindings>
    <binding protocol="http" bindingInformation="*:7000:127.0.0.1" />
    <binding protocol="http" bindingInformation="*:7000:192.168.0.5" />
</bindings>

将这些端口号之一更改为“ 7000”以外的名称,以免您尝试使用同一端口。

就我而言,我使用的不是本地地址的192地址,因此我需要使用一些netsh命令打开该端口并ip up。这是一个链接,显示了如何打开IIS Express的端口以允许远程连接。除非您运行列出的那些netsh命令,否则不能以普通用户身份运行。

这是netsh命令:

  1. netsh http添加urlacl url = http://192.168.1.42:58938/ user =所有人
  2. netsh advfirewall防火墙添加规则名称=“ IISExpressWeb” dir = in protocol = tcp localport = 58938 profile = private remoteip = localsubnet action = allow

复制这些命令,然后使用具有ADMIN特权以及您的IP地址和端口号的cmd运行它们。


这就是我的解决方案,谢谢
WeisserHund

8

我只是将配置文件从“ IIS Express”更改为“ MyProjectName”(我认为它使用kestrel代替IIS作为http服务器),现在可以正常工作:

在此处输入图片说明


这不是解决方案,而是一种解决方法。您的答案建议使用其他服务器-Kest​​rel-而OP显然正试图使IIS-Express正常工作。
Prolog

2
经过三天的拔毛,此解决方案对我有所帮助。谢谢
梅尔

7

澄清

确实,这里的答案很多都是相同的,并说“重启并神奇地再次起作用”之类的内容。

嗯,十分之九的人有此问题,例如OP,这是因为IP地址已经在使用中。

回答

可能有2个IP地址正在使用中。您可以通过以下两种方式找到它们:

1)右键单击启动项目

2)点击“属性”

3)点击“调试”标签

在这里,您可以看到“应用程序URL”和“ SSL URL”。

  • 如果您的“应用程序网址”正在使用中,只需在此处进行更改并保存,它便可以再次使用。

  • 如果正在使用“ SSL URL”,请关闭VS,删除项目隐藏的.vs文件夹中的“ applicationhost.config”文件,然后再次打开VS。


6

我可以通过更改一件事情来切换此错误。在我的ASP.Net Core 1.0 RC2 Web应用程序项目的launchSettings.json文件中:

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:18177/",
      "sslPort": 0
    }
  },

我已更改为https,以尝试使用该协议运行项目。显然,这不是进行更改的地方。我怀疑它是在同一端口上创建多个绑定,而IIS Express不喜欢那样。


我必须这样做才能增加端口号。我原来的帖子“卡住了”,我现在没有时间重新启动或弄清楚如何解决它
Simon_Weaver

6

我也遇到了同样的问题,但是解决问题的方法是转到applicationhost.config并删除我没有添加的端口(我想是IIS Express),该端口将我的特定端口站点放置在另一个端口上。

这是配置文件用于绑定的内容:

<bindings>
      <binding protocol="http" bindingInformation="*:54764:localhost" />
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

我删除了第一个绑定项,因为我想要的唯一端口是44360。我的配置文件现在如下所示:

<bindings>
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

现在调试时看不到错误。

我还注意到我的项目中的第二个API也分配了端口80,我也删除了它。


5

从项目文件夹中删除bin和obj文件夹并重建。


尽管通常进行手动清理确实有帮助,但是在这种情况下它不能解决问题,因为问题出在applicationhost.config文件中,并且很可能是尝试两次使用相同的IP地址引起的
MedievalCoder

5

我刚刚清理了解决方案,然后重新构建它,最后按F5键,它起作用了!很简单。


4

我不会假装完全理解是什么MS Bug造成了这个问题,但这是另一个潜在的解决方案:

在.vs / config / applicationHost.config文件中,找到的部分<system.applicationHost><applicationPools>。在泳池下,确保managedRuntimeVersion属性值与系统(和/或已安装的.NET Framework版本)的IIS配置中的值匹配。

例如,您可能会发现(就像我一样)生成的文件具有:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

就我而言,您可以将其替换为:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

注意从“ v4.0”到“ v4.0.30319”的替换。这解决了问题。


似乎正在发生什么:

我相信VS会生成带有.N​​ET框架“默认”版本的applicationHost.config文件,该版本可能与系统上已安装/配置的特定版本不匹配。您可以通过在Process Monitor中跟踪执行情况并找到iisexpress.exe的命令行来调试/观察此问题。运行带有/trace:error附加命令的命令会产生更多信息,提示无法预加载版本v4.0的CLR。以机智:

正在启动IIS Express ...
尝试预加载CLR版本v4.0时失败。hr = 80131700
无法初始化W3WP_HOST hr = 80131700
进程模型关闭,称为
无法启动iisexpress。


无论如何,我认为这可能对其他人有所帮助,因为它很常见,可以在线获取带有不良信息的多个参考,而且我个人已经多次点击它。


这些解决方案都不适合我,如果您已经安装了默认的Windows IIS(Windows附带了Windows IIS)并可以访问它,请尝试使用它解决了我的问题,只需在其中添加新网站或新应用程序就可以了,无论如何,IIS Express无法打开页面很奇怪。如果您需要对其进行跟踪,只需使用ctrl + alt + p快捷键将其附加到进程中,然后进行检查Show process for all users并选择w3wp.exe(有时需要刷新网站以进行查找w3wp.exe),然后单击Attach按钮。
Mohammad Musavi

3

如果它正在工作并且突然停止,请首先尝试以下方法:

  • 关闭Visual Studio
  • 杀死iisexpress.exe进程
  • 重新打开Visual Studio

3

当我在applicationhost.config中添加新的绑定(以管理员身份运行)运行时,就会发生我的问题。



3

对我来说,问题是另一个进程正在使用同一端口。(在我的情况下,是Outlook使用与我的网站相同的端口,因此我的网站无法启动)

是的,您可以更改本地端口,但是如果您正在运行API或其他应用程序需要的某些功能,则不一定总是要这样做。

要获取使用哪个端口的应用程序列表,请打开CMD并键入“ netstat -aon”。您将获得端口列表。找到您的站点应使用的端口,或要使用的端口,并记下/记住PID。

现在打开任务管理器,然后单击“详细信息”选项卡。用您的PID查找过程并结束。现在,您应该能够使用该端口启动IIS Express。


3

我能够通过重新启动计算机来解决此问题。我尝试了一些失败的尝试,最后放弃并重新启动了计算机。重新启动后,它已经运行了好几天了。可能是某个进程被挂起的结果。


3

对我而言,这是以下指示的混合:

删除您的Web应用程序的.vs \ applicationhost.config,然后重试。

然后,也许最重要的是,以管理员权限运行Visual Studio。


3

我添加.UseUrls("https://localhost:<some port>/")到Program.cs。这似乎对我有用!


2

我只是打开了“启用SSL”。这解决了我的问题。

  1. 右键单击Web项目
  2. 调试标签
  3. 将“启用SSL”切换为“打开”(如果关闭,则是我的情况)

2

我只是遇到了同样的问题,并且杀死了所有仍在运行的“ iisexpress.exe”进程。那对我有用!


2

我的解决方案(针对.net core 2.0)是我忘记在launchSettings.json的iisExpress下的applicationUrl中添加端口号。

"iisExpress": {
  "applicationUrl": "https://localhost:50770",
  "sslPort": 50770
}

launchSettings.json由VS自动生成或更新时,最后applicationUrl应该有/。更多信息可以在blog.lextudio.com/
Lex Li

2

问题可能是因为[√] Enabled SSL已为您的项目选择的(请参阅Debug项目设置窗口中的选项卡),但是Visual Studio决定使用哑巴并设置类似的内容http://localhost:32396。失败的原因是:1.不是HTTPS,并且2.证书无效。要强制使用它,您需要使用范围为44300-44398的端口。

参见https://stackoverflow.com/a/24957146/1236397



1

在cmd中尝试

taskkill /im iisexpress.exe /f
taskkill /im dotnet.exe /f

然后按f5。我不更改端口,删除文件或重新启动VS。


可以解释一下您的回答。仅仅杀死进程可能不是这里的答案。然后呢?
Shiham
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.