无法连接到 Web 服务器“IIS Express”

nhu*_*uvy 29 c# asp.net-core blazor visual-studio-2019 asp.net-core-3.0

我使用的是 Microsoft Visual Studio 2019 社区预览版,版本 16.4.0 预览版 1.0。我刚刚更新到 Windows 10 Pro Version 1903 OS build 18362.418 。使用 ASP.NET Core 3 Web 应用程序项目(Blazor Server),当我按下 时F5,我发现错误

我可以手动去https://localhost:44333/,但是不方便。当我停止调试时,我也会在任务栏上手动关闭它。

使用另一个网络应用程序项目,问题不会发生。

当我选择或不选择 option 时Enable native code debugging,不会成功。

如何解决?

Jos*_*des 29

启用/禁用 SSL

这是简单的解决方法。对我来说,在 Visual Studio 内的项目调试选项卡中切换“启用 SSL”设置(只需将其更改为与当前设置的相反并运行项目)已解决该问题。

据我了解,这可能有两个原因。首先,它会导致 Visual Studio 更新 Applicationhost Config(稍后会详细介绍)。其次,有时会绑定 SSL 地址。因此禁用 SSL 会禁用该问题。

应用主机配置

打开您的$(solutionDir)\.vs\config\applicationhost.config文件并确保您的网站如下所示:

<site name="[YOUR PROJECT NAME]" id="3">
  <application path="/" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="//PATH/TO/YOUR PROJECT" />
  </application>
  <bindings>
    <binding protocol="http" bindingInformation="*:[YOUR_PORT]:localhost" />
    <binding protocol="https" bindingInformation="*:[YOUR_SSL_PORT]:localhost" />
  </bindings>
</site>
Run Code Online (Sandbox Code Playgroud)

确保 iplisten 配置为 0.0.0.0

如果未配置 IP 侦听列表,则可能会出现此问题(注意,我不知道为什么)。

检查 netsh 以确保有 0.0.0.0 的条目

PS C:\Windows\system32> netsh http show iplisten

IP addresses present in the IP listen list:
-------------------------------------------

::     
0.0.0.0

PS C:\Windows\system32>
Run Code Online (Sandbox Code Playgroud)

如果不存在,请添加正确的 netsh 规则。为此,您需要一个管理员 cmd.exe 或管理员 PowerShell。

PS C:\Windows\system32> netsh http add iplisten ipaddress=0.0.0.0
Run Code Online (Sandbox Code Playgroud)

确保没有任何内容绑定到您正在使用的地址

对我来说,这似乎是 Blazor 的一个问题。如果地址绑定到 Blazor 尝试使用的地址,这可能会导致问题。netsh再次使用以检查正在使用的内容。

netsh http show urlacl
Run Code Online (Sandbox Code Playgroud)

一个看起来像这样的条目

Reserved URL            : http://*:50902/
    User: \Everyone
    Listen: Yes
    Delegate: No
    SDDL: D:(A;;GX;;;WD)
Run Code Online (Sandbox Code Playgroud)

可以用这个命令删除

netsh http del urlacl url=http://*:50902/
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我最近升级到 Win 10 Pro,这时开始显示消息“无法连接到 Web 服务器‘IIS Express’”。运行“netsh http add iplisten ipaddress=0.0.0.0”为我解决了这个问题。 (3认同)
  • 花了 5 个小时,这一行为我完成了 netsh http add iplisten ipaddress=0.0.0.0。谢谢 (3认同)
  • `$ netsh int ipv4 showdynamicport tcp`,在我的机器上,从端口 49152 开始。因此,请确保您的项目不使用高于该数字的端口。 (2认同)

g.p*_*dou 27

我遇到了与 OP 描述的完全相同的问题,我的意思是我收到了错误消息,但是检查了 IIS Express 图标,显示一切正常,因此手动转到 url 工作正常。

从字面上尝试了上面描述的所有内容,包括

  • 在 IIS Express 中停止站点
  • 停止 IIS Express
  • 退出VS重启VS
  • 检查 .vs 文件夹中的所有内容
  • 删除 .vs 文件夹
  • 作为 POC 创建了一个全新的 ASP.NET Core 项目,项目运行正常

没有任何帮助。

我知道作为“解决方案”这是荒谬的,但是在花了半个小时之后,我终于重新启动了我的机器,从那时起一切都在工作......值得一试

  • 尝试了很多其他解决方案...唯一有效的是关闭 SLN,删除 .vs 文件夹,重新打开解决方案。 (3认同)
  • 重新启动有效,但问题是此错误有时会在重新启动后立即发生。这很奇怪,对我来说,这种情况在某些解决方案中经常发生,但在其他解决方案中却没有。 (2认同)
  • 关闭解决方案、放弃 .vs 文件夹并回收 IIS Express 对我来说成功了。 (2认同)

bro*_*man 16

我想我会投入对我有用的东西,即使我迟到了。上面的解决方案对我不起作用。

  1. 转到项目的属性-> 调试选项卡
  2. 将 AppURL 中的端口号更改为 x + 1,即对于我的实例 http://localhost:44348 => http://localhost:44349
  3. 关闭解决方案
  4. 删除了应用程序主机配置
  5. 重新打开解决方案。
  6. 把端口号改回原来的


小智 13

删除.vs文件夹将解决此问题。

  1. 前往申请地点
  2. 删除.vs文件夹(隐藏文件夹)
  3. 再次开始项目!


Iva*_*vak 10

没有什么对我有用 (包括删除.vs、删除objbin、清理项目、重新启动 VS Studio、运行netstat -ao | findstr <port number>以找出谁在使用我的端口等等)。没有什么。

除了这个之外什么也没有:

  1. 以管理员身份打开 PowerShell
  2. 运行Get-Process -Id (Get-NetTCPConnection -LocalPort MY-PORT-NUMBER).OwningProcess(将端口号更改为您的端口号)
  3. 最后,就我而言,这表明该进程:service host: windows push notifications system service正在使用我的端口。注意ID这个过程和..
  4. 转到任务管理器(更多详细信息)>进程>通过该进程找到进程并杀死子进程(因为在系统变得不可用的ID情况下无法杀死该父进程本身)

就是这样。我的情况就是如此windows push notifications system service。一旦我找到它并杀死它 - 一切都正常,无需重新启动整个计算机或更改端口号


Gle*_*lls 9

我过去偶尔也遇到过这个问题。我通常可以通过以下方式解决问题:

  1. 单击显示任务栏的隐藏图标区域。您将看到 IIS Express 图标。
  2. 选择该图标,您应该会看到列出的网站。在该菜单中向下钻取,单击“停止站点”。

在其他情况下,我曾让公司安全软件干扰 Visual Studio/IIS Express 操作。通常,您可以通过以管理员身份运行 Visual Studio 来解决该问题。我试图向保安人员解释这是一个多么糟糕的想法,但他们通常不理解。

最后,如果您正在运行 Asp.Net Core 应用程序,您可以放弃 IIS Express。如果您查看播放按钮旁边,会看到一个下拉列表,上面写着“IIS Express”。如果您打开列表,您将在其中看到您的应用程序的名称。选择那个。您将使用 kestrel 而不是 IIS Express 运行。


小智 5

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

  1. 右键单击项目并选择属性
  2. 转到调试部分
  3. 在 Web 服务器设置下更改应用程序 URL 端口 [只需增加 1]

  • 解释一下为什么这可能有效,因为这会强制重新生成“.vs\PROJECTNAME\config\applicationhost.config”。 (3认同)

Ale*_*lex 5

我通过关闭 Visual Studio (2019) 并重新启动它并以管理员身份运行来解决此问题。