Visual studio 2017 "Unable to connect to web server 'IIS Express'"

Visual studio 2017 "Unable to connect to web server 'IIS Express'"

如果我尝试启动我的 .net 核心应用程序,我会收到此消息。我知道有很多帖子声称可以解决这个问题,但我已经尝试了他们建议的每一种方法并且 none 都有效。

如果我在调试下进入项目属性并更改端口,那么它将连接 1 次。然后,如果我尝试再次连接,它会再次给我同样的错误。然后我可以将端口切换回原始端口,它会加载一次,然后它会在任何时候失败,直到我再次切换它。任何人有他们使用的任何想法或修复?

谢谢!

今天装了core 2.0,把VS 2017更新到15.4.3,还是一样的错误。

我最终将应用程序更改为 运行 在不同的端口上,它对我有用。

我尝试删除 vs 文件夹,但没有成功。

希望对您有所帮助。

在一个解决方案中,如果您在 Visual Studio 2017 中有多个使用 ASP.NET Core 的项目,并且您尝试使用相同的端口号,则会出现此错误。您的解决方案中必须有唯一的端口分配。

转到项目中的此处:Properties/launchSettings.json 打开此文件并在此处编辑端口号。注意:这是您更改 SSL 端口的地方(两个地方)。

原因:VS/IIS Express 维护与解决方案中使用 IIS Express 作为服务器的所有 ASP.NET 核心项目的绑定。例如,如果您使用 Kestrel 或其他服务器,则不会出现此问题。在解决方案中创建每个应用程序时,VS 都会为每个应用程序创建一个新端口,以确保您没有端口冲突。

如果您尝试使用 Azure AD 注册的应用程序回复端口并尝试 "reuse" 您的应用程序注册,您可能会想简单地更改 "app's" 端口,这样您就不必在 Azure 中注册;这是行不通的。如果您只是测试应用程序并想重复使用注册,那么您必须确保您当前正在使用的应用程序是端口上唯一的应用程序 - 手动。如果您需要测试两个或更多应用程序,则必须像在生产环境中一样在 Azure AD 中单独注册它们。

我遇到了这个问题。项目目录中有一个名为“.vs”的隐藏文件夹。关闭 Visual Studio 并删除此文件夹。问题就解决了。

我知道这个问题已经有一个公认的答案,但是 none 的解决方案对我有用,我的解决方案可能会对某些人有所帮助。我正在使用 VS2017ASP.NET Core 2.0 Razor Pages 项目。

错误开始出现,原因不明,我尝试了此处发布的解决方案。

我 运行 从命令行使用 dotnet 运行 命令的 Web 应用程序以查看是否会引发任何有意义的错误,并且有是关于 URL 未正确绑定的警告。我查看了我的项目 Properties\launchSettings.json 文件并注意到 applicationUrl 属性不同。

  1. 更改 applicationURL 的值,使它们相同
  2. 关闭项目并关闭VS
  3. 删除隐藏的 .vs 文件夹(如接受的答案中所述)
  4. 以管理员身份启动 VS

您的应用应该可以正常运行。

  • 如果您对特定 IP 地址(不是本地主机)进行硬编码,请检查它是否未更改。

也可能只是任务管理器中有 iisexpress.exe 个进程挂在同一端口上 运行。

我刚找到一对,杀掉它们就解决了这个问题,无需删除任何 .vs 文件夹或更改端口或类似的东西。

我已经解决了这个问题 在 windows defender(防病毒,Win10)

中添加对文件 devenv.exe 的排除

怎么知道这是问题; 当您加载项目 Defender 时,会在通知中通知未经授权的更改被阻止。如果这是问题,只需添加上述例外。

都试过了。上面没有工作。 applicationhost.config 中更改主机已修复。

将本地主机更改为 127.0.0.1

<binding protocol="http" bindingInformation="*:50740:127.0.0.1" />
<binding protocol="https" bindingInformation="*:44381:127.0.0.1" />

在我的 applicationUrl 中更改 https -> http 在我的案例中解决了这个问题。

对我来说上面的解决方案没有用

但是将 IIS Express Bitness 更改为 x64 有效

在我重新输入应用程序池身份帐户的用户名和密码后,它起作用了

在项目 properties\Debug 部分中将 "Enable SSL" 设置为 false 对我有用。

我遇到了这个问题。 运行管理员模式下的 VS 为我解决了这个问题。

它可能无法完全指导您的情况,但我不得不重新启动我的 (windows) 系统。 @Turneye 的 很可能就是原因,他的解决方案可能会达到相同的结果。

我在 Visual Studio 2019 年遇到了来自 master 的干净分支的问题。重新启动 PC 解决了问题。

我的大学说他一个月大约遇到 2 次这个问题,其他解决方案都没有奏效。

我在 applicationhost.config 文件和 运行 visual studio 文件上添加了 localhost 选项作为管理员,它对我有用。

    <binding protocol="http" bindingInformation="*:6873:localhost" />
    <binding protocol="https" bindingInformation="*:44320:localhost" />
    <binding protocol="http" bindingInformation="*:6873:192.168.137.1" />

我放弃了,选择 运行 项目作为自托管,而不是 play/run 下拉框中的 'IIS Express'。

有时 运行 visual studio 作为管理员解决这个问题。

我的工作是将 launchsettings.json 文件中的 applicationUrl 更改为不同的端口号,并且 url 在此文件中的所有位置都相同。

转到属性 - select 调试选项卡 - 更改应用程序 URL - 例如至 http://localhost:57520/

您的端口上可能有其他 运行 干扰。

这对我有用!

就我而言,问题是由 HTTP 和 HTTPS 的端口相同引起的:

端口必须不同:

在我的情况下 (VS 2019),我所要做的就是在每次修改代码后重新 运行 应用程序之前重建代码。

P.S。我正在编写服务器端 Blazor。

如果您使用问题端口使用 netsh http add urlacl url=http://localhost:<port>/ user=everyone 添加特定的 url acl,那么您需要使用 netsh http delete urlacl url=http://localhost:<port>/ user=everyone.

删除它

另一种解决方案是 运行 Visual Studio 作为管理员,允许它覆盖 urlacl。

对于使用 VS2019 的我来说,在开始 运行我们的项目时遇到了同样的问题。 因此,右键单击 laptop/Desktop 中日期时间窗格附近的通知窗格中的 IIS Express 图标。它将显示所有 运行ning 应用程序,最后可以找到 Exit。 在此处单击退出,然后 运行 您的项目应该可以运行。这对我有用,无需关闭 VS19 项目。

在尝试使服务器可以从外部访问的 netsh 配置之后,我添加了一个新的 iplisten 条目。 IISExpress 显示错误 Unable to connect to web server 'IIS Express' 删除 iplisten 条目后已修复:

netsh http delete iplisten <ip-address>

您可以使用

查看当前的 iplisten 条目列表

netsh http show iplisten

他们需要 运行 提升的(管理员)命令提示符。

在这种情况下IISExpress似乎没有错误信息。

我在 VS2019 中多次遇到这个问题,然后当我进行小的编辑并重新启动 IIS Express 时,我意识到这个问题更加明显。上面关于端口的一些讨论让我思考,因为我只是通过关闭浏览器来关闭应用程序。所以我相信端口没有被释放,并且下次启动失败了。 我通过单击 VS2019 中的“停止调试”按钮开始关闭调试。我没有再遇到这个问题。

我通过重启笔记本电脑解决了这个问题。

重建解决方案为我解决了这个问题。

对于那些使用 .Net Core 3.x 并且仍在苦苦挣扎的人,就像我一样,经过几天的搜索,我终于找到了问题的线索 https://weblog.west-wind.com/posts/2020/Jan/14/ASPNET-Core-IIS-InProcess-Hosting-Issues-in-NET-Core-31

In .NET Core 3.x InProcess hosting for IIS is the default. OutOfProcess hosting externally runs Kestrel.exe and has IIS proxying requests into the external Kestrel HTTP host. InProcess hosting uses a custom IIS Module that bootstraps a custom .NET Core host right into the IIS host process which provides better performance and a smaller footprint.

更改为“进程外”(右键单击项目 > 属性 > 调试 > Web 服务器设置 > 托管模型),关闭 visual studio,删除隐藏的 .vs 文件夹(如先前评论中所述),然后 运行 在 VS 中使用 IIS Express 最终 成功了。如果您将其改回“进行中”以进行测试并且它不起作用,则必须在改回并关闭项目后再次删除 .vs 文件夹。


如果你像我一样,那让你跨越了一个障碍,进入了另一个障碍....

我的下一个问题是 运行 在 powershell (Invoke-WebRequest -Uri:https://localhost:{port}/{endpoint}) 中请求 ping 服务器时,我遇到了这个错误 This webpage is not available (with error code "ERR_CONNECTION_RESET") lead me to a thread that mentioned a missing iss express development cert,其中提到通过 运行ning ./IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:{port}/ -UseSelfSigned 在管理员 powershell 终端的 IIS Express 程序文件目录中解决它。


我也将 post 我的第一个问题是从 Visual Studio 尝试 运行 IIS Express,这是 Cannot find C:\Program Files\IIS Express\iisepxress.exe。 IIS Express 出于某种原因不仅安装在我的 Program Files (x86) 中,还安装在我的第二个驱动器 (D:\Program Files (x86)) 中。在意识到无法更改 Visual Studio 寻找 IIS Express 的位置后(即使它也安装在 D 驱动器上),我卸载了 IIS Express(这可能是我的开发证书被删除的方式),in RegEdit changed my Program Files directory back to the "C\Program Files" folder (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion > ProgramFilesDir key), and reinstalled IIS Express from Microsoft.


最后,我可以在本地使用 IIS Express 运行 我的 .Net Core API。

祝大家好运!

您的端口已针对该特定用户被阻止。更改端口或用户,或者以其他方式为该用户允许该端口。管理员通常拥有所有权利。

原因之一是端口被其他应用程序或系统占用。按照步骤确定端口问题。

  1. 您需要验证端口是否可用。

    • 在命令中替换您的端口号并在管理命令提示符或任何其他 shell 中启动它。即我使用的是 1344 端口。

netstat -ano -p tcp |find "1344"

如果任何进程使用给定端口,它将打印信息。 您将在上述命令结果的最后一列中获得进程 ID (PID)

  1. 转到任务管理器 -> 详细信息选项卡 -> 通过 Id 检查进程(如果不可见,请添加 PID 列)

  1. 该端口被系统进程占用,我们应该在项目中更改端口。

    否则,如果是其他程序,您可以终止进程或更改该程序中的端口。

什么对我有用而且非常简单:

  1. 右击项目
  2. 属性
  3. 调试
  4. 应用程序URL: 将端口更改为 5000

完成,希望对大家有所帮助。

删除路径 C:\Users[用户名]\Documents\IISExpress\Logs 下的解决方案的 IISExpress 日志并启动 运行 它工作正常的项目。

删除 .vs 文件夹对我不起作用,更新也一样