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

Sar*_*rek 140 c# asp.net asp.net-mvc visual-studio-2015

我在做什么:

删除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:错误的800700c1错误

我试过了:

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

Vic*_*rov 205

为Visual Studio 2015安装Update 2后,我开始收到相同的错误.我没有运气就尝试了以上所有方法.但是,我发现了一个适合我的解决方案:

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

  • 对于 Net Core 2.2 项目 - 经过巨大的努力并尝试了从删除 .vs 文件夹、删除 IIS Express 配置、更改端口号、更改绑定到以管理员身份运行 VS 的所有操作,我最终通过 1. 关闭 VS、2. 删除解决了问题`launchSettings.json` 3.打开VS重新生成`launchSettings.json`。该文件是否已损坏或不正确,甚至是否发生更改导致失败并不明显。 (149认同)
  • 任何使用 @QuintonSmith 删除位于 `<project>/Properties` 文件夹下的 `launchSettings.json` 的方法的人。我花了一分钟才找到它的确切位置,但它成功了! (17认同)
  • 谢谢@QuintonSmith。您的解决方案在 .NET Core 3.1 中也适用于我。 (15认同)
  • 谢谢昆顿,你拯救了这一天 (4认同)
  • 对我来说是`.vs \ config \ <MyProject> \ config \ applicationhost.config` (2认同)
  • 您在哪里看到需要右键单击的“网站”? (2认同)
  • 感谢@QuintonSmith,您的解决方案也适用于 ASP.NET Core 5 (.NET 5 RC2 SDK) 的 Visual Studio 2019 预览版。 (2认同)

小智 162

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

  • 这在VS2017中对我有用,无需更改端口. (18认同)
  • 重新启动VS2017没有修复,但重新启动计算机修复它为我.不需要更改端口或删除文件夹.希望它能帮助别人. (8认同)
  • 删除了整个`.vs`文件夹并为我工作,就是这样 (5认同)
  • 在为我做这个之后需要以管理员身份运行Visual Studio,并且工作,谢谢! (3认同)
  • 特别是RUN AS管理员对我很重要.(虽然我有Asp.net Core 2.0 VS2017. (3认同)

ang*_*sen 22

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

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

为我工作(TM).

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

在此输入图像描述

  • 在 Visual Studio 2019 中不起作用 - 它只是每次都使用相同的端口。 (4认同)

Sau*_*ala 22

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

我能够通过两个步骤解决问题:

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


Qui*_*ith 19

应要求将我的评论复制到答案中。

对于 Net Core 2.2 项目 - 经过大量的斗争并尝试了从删除 .vs 文件夹、删除 IIS Express 配置、更改端口号、更改绑定以及以管理员身份运行 VS 的所有操作后,我最终通过以下方式解决了问题

  1. 关闭VS,
  2. 删除launchSettings.json
  3. 打开重新生成launchSettings.json的VS。

文件已损坏或不正确,甚至更改导致失败的情况并不明显。

  • 这对我有用,是一个简单的解决方案 - 谢谢 (3认同)

Tad*_*dej 10

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

这为我做到了。

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

  • 仅管理员权限允许该应用程序绑定到小于1024的端口号。这就是6767为您工作的原因。 (5认同)

cod*_*ion 9

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


小智 9

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

请享用!


Sve*_*rim 9

澄清

这里真的有很多答案是相同的,并说“重新启动,它再次神奇地工作”。

嗯,10 次中有 9 次有人遇到这个问题,就像 OP 一样,这是因为 IP 地址已经在使用中。

回答

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

1) 右键单击​​启动项目

2)点击“属性”

3) 单击“调试”选项卡

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

  • 如果您的“应用程序 URL”正在使用中,只需在那里更改并保存它,它应该会再次工作。

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


Akb*_*sha 8

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

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

  2. 转到调试部分

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

在此处输入图片说明

  • 你不是一个开始,而是一个超级巨星!谢谢它成功了 (2认同)

Dan*_*aal 8

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

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

  • 蓝屏后得到这个。必须删除 .vs 文件夹并重新启动 **计算机**。重新启动 Visual Studio 还不够。 (6认同)
  • 我的步骤被压缩为:1)清洁解决方案。2) 退出 Visual Studio。3)删除.vs文件夹 (3认同)

Ben*_*har 8

如果您有能力重新启动您的机器,然后再重新启动,经过将近一个小时的尝试,毫无希望地解决了这个问题,这解决了我的问题。


小智 6

我遇到了同样的问题,但我修复它的方法是转到applicationhost.config并删除一个我没有添加的端口(IIS Express我猜),这个端口将我的特定端口站点放在另一个端口上.

以下是配置文件对我的绑定的影响:

<bindings>
      <binding protocol="http" bindingInformation="*:54764:localhost" />
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>
Run Code Online (Sandbox Code Playgroud)

我删除了第一个绑定项目,因为我想要的唯一端口是44360.我的配置文件现在看起来像这样:

<bindings>
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>
Run Code Online (Sandbox Code Playgroud)

现在我在调试时没有看到错误.

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


Tad*_*dej 6

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

在此处输入图片说明

  • 这不是解决方案,而是解决方法。你的答案建议使用不同的服务器 - Kestrel - 而OP显然正在尝试让 IIS-Express 工作。 (3认同)
  • 经过三天的拔毛,此解决方案对我有所帮助。谢谢 (2认同)

Muh*_*nad 6

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


red*_*510 5

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

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },
Run Code Online (Sandbox Code Playgroud)

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:18177/",
      "sslPort": 0
    }
  },
Run Code Online (Sandbox Code Playgroud)

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


Enr*_*ico 5

对我来说,问题是其他进程正在使用同一端口。(就我而言,outlook 使用与我的网站相同的端口,因此我的网站无法启动)

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

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

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


Med*_*der 5

这些回答中有许多都没有完全解决当前的问题。对我而言,真正的问题是我在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>
Run Code Online (Sandbox Code Playgroud)

将这些端口号之一更改为“ 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命令运行它们。


noo*_*mer 5

我刚刚清理了我的解决方案,然后重新构建它,最后按 F5 就可以了!很简单。


小智 5

如果您使用 VS 2017 或 VS 2019 与 ASP.Net Core,您可以直接转到 Properties 文件夹下的 launchSettings.json,只需更改 iisSetting 的 applicationUrl 键的端口号。

在此输入图像描述


归档时间:

查看次数:

126099 次

最近记录:

6 年,8 月 前