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

Posted

技术标签:

【中文标题】ASP.NET 5 MVC:无法连接到 Web 服务器“IIS Express”【英文标题】:ASP.NET 5 MVC: unable to connect to web server 'IIS Express' 【发布时间】:2016-06-11 02:05:18 【问题描述】:

我在做什么:

打开 Visual Studio 社区 2015 文件 -> 新建 -> 项目 在 Visual C# 下:Web -> ASP.NET Web 应用程序 Web 应用程序 然后按 f5 弹出错误“unable to connect to web server 'IIS Express'.”

删除位于Documents\IISExpress\configapplicationhost.config 不会更改错误消息。 (在program filesprogram files (x86) 中还有一个IISExpress 文件夹。)

我注意到了,不知道是不是问题:

未找到引用文件“lib/jquery-validation/jquery.validate.js”。

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

"Framework":"FrameworkName":"DNXCore,Version=v5.0","FriendlyName":"DNX Core 5.0","ShortName":"dnxcore50","RedistListPath":null

我没有发现问题,但我有网络数据,如果这可以帮助找出我无法连接到网络服务器的原因。我立即收到RST,ACK,所以我猜测端口已关闭,无论此 Web 服务器是什么,都没有设置。

更多关于这个问题:800700c1 error from /trace:error

我试过了:

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

【问题讨论】:

这有帮助吗? ***.com/questions/15873126/…。还是换端口? ***.com/questions/23502327/… 尝试打开visual studio时右键单击并以管理员身份打开.. 谢谢你,但这也没用。 在完全没有改变之后,每隔一段时间就会发生这种情况。这个问题已经存在了一段时间,MSFT 仍然没有解决。讨厌他们,他们的支持很糟糕。搞砸他们。 这篇文章解决了我的问题-> overengineer.net/… 【参考方案1】:

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

右键单击 web 项目 调试选项卡 关闭再打开启用 SSL,它应该会生成一个新的随机端口 复制 SSL URL 并粘贴到启动 URL 框中 运行项目

为我工作 (TM)。

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

【讨论】:

它有效,但仅当我使用端口 60000 时。端口 6000 返回错误:不安全的端口。 在 Visual Studio 2019 中不起作用 - 它每次都使用相同的端口。 @EJoshuaS-ReinstateMonica 我相信这已经改变了很多。看看您的 Startup 类是如何配置的,以及您拥有哪些 appsettings.json 文件。还有Properties\launchSettings.json在本地启动不同的配置文件。 docs.microsoft.com/en-us/aspnet/core/fundamentals/…dejanstojanovic.net/aspnet/2018/december/… 谢谢你帮了我很多,我一直在努力解决这个愚蠢的错误:)【参考方案2】:

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

    右键单击 web 项目 调试选项卡 将启用 SSL 切换为“开启”(如果关闭,我的情况就是这样)

【讨论】:

【参考方案3】:

我没有弄清楚是什么导致了这个问题。 但是repair install 修复了它。

【讨论】:

【参考方案4】:

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

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

如果您将 IIS 配置为使用相同的端口,(停止应用程序/使用不同的端口)并重试。

【讨论】:

对我来说是.vs\config\<MyProject>\config\applicationhost.config 对于 Net Core 2.2 项目 - 经过一番巨大的努力并尝试了从删除 .vs 文件夹、删除 IIS Express 配置、更改端口号、更改绑定到以管理员身份运行 VS 等所有操作后,我终于通过以下方式解决了问题1.关闭VS,2.删除launchSettings.json 3.打开重新生成launchSettings.json的VS。文件已损坏或不正确,甚至在更改导致失败时都不是很明显。 谢谢@QuintonSmith。您的解决方案在 .NET Core 3.1 中也适用于我。 感谢 Quinton 拯救了这一天 任何使用@QuintonSmith 删除launchSettings.json 方法的人,它位于<project>/Properties 文件夹下。我花了一分钟才找到它的确切位置,但它成功了!【参考方案5】:

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

【讨论】:

这在 VS2017 中对我有用,无需更改端口。 为我完成此操作后,需要以管理员身份运行 Visual Studio,并且工作正常,谢谢! 以管理员身份运行对我来说尤其重要。 (虽然我有 Asp.net Core 2.0 VS2017。 删除了整个 .vs 文件夹并为我工作,就是这样 重启 VS2017 并没有解决问题,但重启计算机为我解决了问题。不需要更改端口或删除文件夹。希望对其他人有所帮助。【参考方案6】:

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

【讨论】:

【参考方案7】:

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

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

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

    <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 正在为 .NET 框架生成具有“默认”版本的 applicationHost.config 文件,该文件可能与系统上安装/配置的特定版本不匹配。您可以通过在进程监视器中跟踪执行并找到 iisexpress.exe 的命令行来调试/观察此问题。在添加了/trace:error 的情况下运行此命令会产生更多信息性消息,说明无法使用 v4.0 版预加载 CLR。也就是说:

启动 IIS Express ... 尝试预加载 CLR 版本 v4.0 时失败。小时 = 80131700 无法初始化 W3WP_HOST hr = 80131700 过程模型关闭调用 无法启动 iisexpress。


无论如何,我认为这可能对其他人有帮助,因为在网上有多个参考资料包含不良信息是很常见的,而且我个人现在已经打过几次了。

【讨论】:

这些解决方案都不适用于我,如果您已经安装了默认的 Windows IIS(Windows 附带)并且可以访问它,请尝试使用它,这解决了我的问题,只需添加新网站或那里的新应用程序,它已经完成,无论如何,IIS Express 无法打开页面很奇怪。如果您需要跟踪它,只需使用ctrl + alt + p短键将其附加到进程并检查Show process for all users并选择w3wp.exe(有时需要刷新网站才能找到w3wp.exe)然后点击Attach按钮.【参考方案8】:

我可以通过改变一个东西来切换这个错误。在我的 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 不喜欢这样。

【讨论】:

我必须这样做才能增加端口号。我原来的帖子被“卡住”了,我现在没有时间重新启动或弄清楚如何修复它 突出显示更改:http 而不是 https【参考方案9】:

在我的情况下,这是在 IIS Express 尝试附加到的同一端口上侦听的其他应用程序。我必须运行 netstat -ao 来查看使用相同端口和关闭应用程序的进程的 PID。在我的例子中,应用程序是 Viber。

【讨论】:

【参考方案10】:

如果它正在工作并突然停止,请先尝试:

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

【讨论】:

【参考方案11】:

在cmd中试试

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

然后按 f5。 我不会更改端口、删除文件或重启 VS。

【讨论】:

可能解释一下你的回答。仅仅杀死进程可能不是这里的答案。之后呢?【参考方案12】:

当我在 applicationhost.config 中添加新绑定后,我的问题就发生了,以管理员身份运行解决了问题。

【讨论】:

【参考方案13】:

我遇到了同样的问题,但我修复它的方法是转到 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,我也将其删除。

【讨论】:

【参考方案14】:

我在 Program.cs 中添加了.UseUrls("https://localhost:&lt;some port&gt;/")。这似乎对我有用!

【讨论】:

【参考方案15】:

对于以下内容, 我所要做的就是导航到当前项目解决方案目录 > .vs > config 以删除 applicationhost.config,然后重新启动 VS 并正常运行。

.vs 是一个隐藏文件夹

【讨论】:

【参考方案16】:

只需关闭视觉工作室并重新打开并执行。 它对我有用。

【讨论】:

【参考方案17】:

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

这是为我做的。

看起来 IIS 必须向某些具有管理员权限的配置写入一些内容(端口 80 不适用于普通用户,但端口 6767 工作正常)。

【讨论】:

只有管理员权限才允许应用程序绑定到小于 1024 的端口号。这就是 6767 适合您的原因。【参考方案18】:

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

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

【讨论】:

launchSettings.json被VS自动生成或更新时,applicationUrl最后应该有/。更多信息请访问blog.lextudio.com/…【参考方案19】:

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

享受吧!

【讨论】:

【参考方案20】:

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

是的,您可以更改本地端口,但如果您正在运行 API 或其他应用程序需要的东西,您并不总是希望这样做。

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

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

【讨论】:

【参考方案21】:

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

【讨论】:

【参考方案22】:

我刚刚将我的配置文件从“IIS Express”更改为“MyProjectName”(我认为它使用 kestrel 作为 http 服务器而不是 IIS),现在它工作正常:

【讨论】:

这不是解决方案,而是解决方法。您的回答建议使用不同的服务器 - Kestrel - 而 OP 显然正试图让 IIS-Express 工作。 拔了三天头发后,这个解决方案帮了我的忙。谢谢【参考方案23】:

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

我能够分两步解决问题:

第 1 步:删除隐藏在主解决方案文件夹中的 .vs 文件夹。 (在此之前关闭visual studio)然后当你再次启动visual studio时,其中的这个文件夹和文件(applicationhost.config)将由visual studio自动创建。 第 2 步:对于多个启动项目,如果您仍然面临问题,则将项目一个一个作为启动项目运行,然后作为多个启动项目运行。

【讨论】:

解决方案奏效了。谢谢 :) DELETE .git 文件夹怎么样?【参考方案24】:

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

    右击项目并选择属性

    转到调试部分

    在 Web Server Settings 下更改 App URL 端口 [只需增加一个 :)]

【讨论】:

你不是一个开始,而是一个超级巨星!谢谢它的工作 对我不起作用。【参考方案25】:

只需以管理员身份运行 Visual Studio 即可。

【讨论】:

我以管理员身份运行 VS,但仍然遇到同样的问题。 VS 不应以管理员权限运行。如果您只能通过在管理员模式下启动来解决问题,那么您可能做错了什么。【参考方案26】:

对我来说,这是instructions的混合体:

删除您的 Web 应用程序的 .vs\applicationhost.config 并尝试 再次。

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

【讨论】:

【参考方案27】:

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

【讨论】:

虽然手动清理经常会有所帮助,但在这种情况下它不会解决问题,因为问题存在于 applicationhost.config 文件中,并且很可能是由于尝试使用相同的 IP 地址造成的两次 为我工作,因为在那之前我并没有真正做任何改变【参考方案28】:

我修复了 Visual Studio 2017 安装,它再次工作

【讨论】:

【参考方案29】:

还有另一种获得相同错误的方法:

使用0.0.0.0 作为 IP 地址。这在生产中运行良好,但对我们来说在 IIS Express 上开始失败。在 dev 中将其改回 localhost,解决了我们的问题。

【讨论】:

【参考方案30】:

我正在使用 VS2017,我禁用 Tool &gt; Options &gt; Debugging &gt; Enable javascript debugging for ASP.NET 然后工作。

【讨论】:

以上是关于ASP.NET 5 MVC:无法连接到 Web 服务器“IIS Express”的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 4 EF6 无法连接到 SQL Server Express 数据库

无法从 ASP.NET Web 应用程序连接到我的 SQL Server Express

无法使用 AFNetworking 将 iOS 连接到 asp.net webservices

ASP.NET Core MVC:使用 SQL Server 身份验证连接到现有数据库

ASP.NET MVC EF 代码先部署 GoDaddy

从 ASP.NET MVC 项目调用 .NET CORE 5 Web API 微服务时无法检索 BadRequest 错误