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

我在做什么:

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

我注意到一件事,我不知道这是不是问题

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

我有一堆破烂,但我没注意到里面有什么。这里有一些内容:

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

我没有注意到问题,但我有网络数据,如果这可以帮助找出为什么我不能连接到web服务器。我立即得到一个RST,ACK,所以我猜端口是关闭的,无论这个web服务器是什么,都没有被设置。

关于这个问题的更多信息:/trace:错误

我试过了:

  • 删除applicationhost。配置(和更改端口号)
  • 以管理员身份运行visual studio
  • 删除文档中的IISExpress文件夹(更改错误消息,直到文件夹重新安装)
  • 切换SSL关闭和打开,复制url到启动框。(注意:我没有使用ssl)
  • 清除所有SFC /scannow错误
  • 从x86版本和64位版本启动iisexpress
379023 次浏览

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

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

为我工作(TM)。

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

enter image description here

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

  1. 右击web项目
  2. 调试选项卡
  3. 切换启用SSL“on”(如果它是关闭的,这是我的情况)
我不知道是什么导致了这个问题。 但是修复安装修复了它

在安装Visual Studio 2015更新2后,我开始得到同样的错误。我尝试了以上所有方法,但都没有成功。然而,我找到了一个适合我的解决方案:

  1. 删除YourSolutionFolder\\.vs\config\applicationhost.config文件(注意:.vs是一个隐藏文件夹)
  2. 打开Visual Studio,右键点击网站>性能比;调试标签>Web服务器设置>应用程序URL -改变端口号。

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

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

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

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

在.vs/config/applicationHost. conf文件中。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正在生成一个applicationHost。. net框架的“默认”版本,这可能与系统上安装/配置的特定版本不匹配。您可以通过跟踪Process Monitor中的执行来调试/观察这个问题,并找到iisexpress.exe的命令行。在添加/trace:error的情况下运行此命令会产生一个关于预装版本v4.0的CLR失败的信息更丰富的消息。即:

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

.

不管怎样,我觉得这可能会对其他人有所帮助,因为在网上有多个含有坏信息的推荐信是很常见的,我个人现在已经碰到过几次了。

我可以通过改变一个东西来切换这个错误。在我的ASP。Net Core 1.0 RC2 Web Application项目的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不喜欢这样。

在我的例子中,是其他一些应用程序侦听IIS Express试图连接到的相同端口。我必须运行netstat -ao来查看使用相同端口和关闭应用程序的进程的PID。在我的案例中,应用程序是Viber。

如果它正在工作,但突然停止了,先试试这个:

  • 关闭Visual Studio
  • 关闭iisexpress.exe进程
  • 重新开放Visual Studio

在cmd中尝试

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

,按f5。 我不改变端口,删除文件或重新启动VS.

当我在applicationhost中添加一个新的绑定时,我的绑定就会发生。配置,以管理员身份运行解决了这个问题。

我也有同样的问题,但我修复它的方式是通过去applicationhost。配置并删除一个不是由我添加的端口(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也分配给它,我删除了它。

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

对于以下内容, enter image description here 我所要做的就是导航到当前项目解决方案目录> .vs > config删除applicationhost。

. config,然后重新启动VS并正常运行

.vs是一个隐藏文件夹

关闭visual studio,重新打开并执行。

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

这对我很有用。

看起来IIS必须写一些东西到一些具有管理权限的配置(端口80不适合普通用户,但端口6767工作正常)。

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

"iisExpress": {
"applicationUrl": "https://localhost:50770",
"sslPort": 50770
}
对我来说有效的解决方案是: 关闭VS项目 在文件资源管理器中,导航到项目并删除整个”。vs”文件夹 重新启动项目 以“调试”运行 作品 显然,这与“applicationhost”有关。配置文件。< / p >

享受吧!

对我来说,问题是其他进程正在使用相同的端口。(在我的情况下,它是outlook使用相同的端口作为我的网站,因此我的网站无法启动)

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

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

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

我重新启动电脑解决了这个问题。我尝试了一些失败的事情,最后放弃了,重新启动了我的电脑。在我重新启动后,它已经工作了几天了。可能是某个进程被挂起的结果。

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

enter image description here

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

我分两步解决了这个问题:

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

我有同样的问题,我能够通过改变端口号来解决它。

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

  2. 转到Debug部分

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

enter image description here

只要以管理员身份运行visual studio就可以了。

对我来说,这是以下指令的混合:

删除您的web应用程序的。vs\applicationhost。配置并尝试 一次。< / p >

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

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

我修复了Visual Studio 2017的安装,它又工作了

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

使用0.0.0.0作为IP地址。这在生产环境中工作得很好,但在我们的IIS Express上开始失败。在开发中将其更改回localhost,解决了我们的问题。

我使用VS2017,我禁用Tool > Options > Debugging > Enable JavaScript debugging for ASP.NET然后工作。

Windows 10防御防火墙正在阻止它。我把它关掉,运行mvc core 2.0应用程序,它工作了。然后我再次打开windows防火墙,它仍然工作。所有其他的解决方案虽然都是出于好意,但对我来说都不管用。希望这能帮助到一些人。

对我来说,当我在DOS提示符上添加iplisten时,IIS Express无法访问:netsh http add iplisten MyIPAddress。我通过像这样删除iplisten来修复它:

确保下列注册表项\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList不包含未绑定到您机器上启用的网络适配器的IP地址。

这是我在尝试了这个SO问题中列出的各种其他解决方案后出现问题的原因,例如:

  1. 删除applicationhost.config
  2. 打开和关闭SSL。
  3. 修改端口号。
  4. 手动关闭IIS Express进程。
  5. 重新安装IIS Express。
  6. 修复Visual Studio。
  7. 安装新版本的Visual Studio
  8. 创建一个新的。net框架Web应用程序。
  9. 创建一个新的。net核心Web应用程序。
  10. 执行netsh urlacl命令
  11. 运行netsh http add iplisten ipaddress=::
  12. 以管理员身份运行Visual Studio。
  13. 确保旁路遍历权应用..

显然,当IIS express试图启动时,它正在尝试绑定到这个无效的IP。解决办法是删除无效的IP。这个额外的无效可能来自我的家庭无线网络,而在工作中,我通过硬连线适配器分配了一个不同的IP。

一个全面的解决方案可能是删除注册表项中的所有ip,并运行netsh http add iplisten ipaddress=::来允许监听所有地址。

在注意到以下事件日志条目后,我能够追踪到这个问题:

    WebApplicationNetCore AppPool的工作进程 日志含义PID='23260',初始化http. PID失败。系统通信时 请求开始处理HTTP请求,因此将被请求 W3SVC认为有疾病并被终止。数据字段包含 李错误号码。< / >
  • IIS表达:工作进程初始化失败 因此无法启动。
  • .数据是错误
  • HTTP事件:无法绑定到192.168.1.42:52999的底层传输。IP Listen-Only列表可以包含对接口的引用 这台机器上可能没有。数据字段包含 李错误号码。< / >

我在。net core 2.1, visual studio版本15.9.6上遇到了这个问题。当我删除。vs文件夹时,我重新打开visual studio,问题仍然存在。下面是对我有效的解决方案:

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

其他的解决方案:

  • 关闭Visual Studio,从项目文件夹中删除bin和obj文件夹。打开项目,然后重新构建解决方案。
  • 尝试以管理员身份运行Visual Studio。
  • 清洁解决方案,然后重建
    1. Clean Solution. 2)退出Visual Studio. 3)删除.vs文件夹4)重新打开Visual Studio
  • 重启机器(如果你负担得起)

这个问题可能是因为你的项目选择了[√] Enabled SSL(参见项目设置窗口中的Debug选项卡),但是Visual Studio决定装傻,设置类似http://localhost:32396的东西。失败的原因是1。它不是HTTPS,并且2。证书无效。要强制执行,您需要使用44300-44398范围内的端口。

看到https://stackoverflow.com/a/24957146/1236397

澄清

这里的很多答案都是一样的,比如“重新启动,它就神奇地重新工作了”。

好吧,10次中有9次人们会遇到这样的问题,因为ip地址已经被使用了。

回答

可能有2个正在使用的ip地址。你可以通过以下方式找到它们:

1)右键单击启动项目

2)点击“属性”

3)点击“调试”选项卡

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

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

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

只需将所有端口号更改为任何工作系列的new ..不要更改应用程序主机.config…

  1. 以管理员身份在本地计算机上登录
  2. 以管理员身份打开visual studio
  3. 删除项目文件夹中的bin文件夹和。vs文件夹
  4. 删除{users}\Documents\IISExpress中的所有文件

我认为最根本的问题是我的许可

许多回答并没有完全解决眼前的问题。对我来说真正的问题是我在我的applicationhost中有两个使用相同端口的绑定。配置文件和我没有打开端口到我的第二个(非localhost)绑定。VS将允许你在这些情况下仍然运行,但前提是你在管理模式下(因此上面所有的答案)。

您实际上是在同一个端口上创建了应用程序的两个IIS express实例,因此需要更改applicationhost中的一个端口。配置文件将允许您继续。有两个不同的应用程序主机。配置文件。您将希望选择具有在项目属性中看到的绑定IP和端口的一个

enter image description here

转到可以看到项目解决方案和项目文件夹的文件夹(在文件资源管理器中显示隐藏项)。导航到你隐藏的。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。下面是一个链接,它展示了如何为IIS Express打开端口以允许远程连接。以普通用户身份运行将无法工作,除非运行列出的这些netsh命令。

netsh命令如下:

  1. netsh http add urlacl url=http://192.168.1.42:58938/ user=everyone
  2. netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=58938 profile=private remoteip= local子网action=allow

复制这些命令,并在cmd中以ADMIN权限和您的ip地址和端口号运行它们。

就我而言,我必须敞开心扉

Documents\IISExpress\config

文件夹并重命名或删除现有配置文件。在这一步之后,我运行应用程序,IISExpress生成了新的配置文件,错误消失了。

对于那些还在经历这个问题的人。我有同样的问题,但消息显示IIS仅而不是IIS Express。尝试以管理员身份启动VS。这为我解决了问题。

我只是清理了我的解决方案,然后重新构建,最后按下F5,它工作了!那么简单。

对我来说,我必须在后台进程中杀死“NET核心主机”。

任务管理器>后台进程> Net Core Host >结束任务

然后重新启动调试实例正常工作。

对我来说,这开始发生在一个正在工作的项目中,但有一天我得到了这个错误。我尝试了关于.vs文件夹和applicationhost的所有建议。修改端口,重新启动VS,重新启动Windows,重新安装IIS Express。毫无效果。我甚至创建了一个新的简单的web应用程序,也得到了同样的错误。我感觉IT部门对我的系统做了什么改动。

在我尝试运行项目和IIS Express已经启动后,在我的提升cmd提示符中,我运行netstat -ano |find "44312",其中44312是我的web应用程序的端口号。我注意到返回的不是通常的本地主机IP(127.0.0.1)。是一些外部IP。它告诉我IIS Express使用不同的IP。

然后我运行netsh http show iplisten,我在结果中看到相同的IP。netsh http delete iplisten [external ip],和BOOM!web应用程序加载!

我用一种很简单的方法解决了它。

通过以下方式:

  1. 关掉微软Visual Studio。
  2. 重开它带有"以管理员身份运行"

希望这对你有所帮助。: "))

如果你读到这里,那么上面的答案可能都不适合你。

我解决这个问题的办法是关闭你的电脑,确保保存了所有必要的打开的文件。重启你的电脑,运行Visual Studio,然后你就可以开始了。

如果你从其他电脑复制项目。你可以试试

Netsh接口ipv4显示排除端口协议=tcp

检查计算机上允许使用的“开始端口到结束端口”

enter image description here

在我的案例中(使用ASP。NET Core 3.1和Visual Studio Professional 2019),我已经见过两次这种情况,在这两种情况下,修复它就像重新启动我的电脑一样简单。

我强烈怀疑,但不能证明,这也可以通过重新启动一个特定的进程来实现(就像@Codenova的回答)。

在我的例子中,这个错误是因为我正在运行Docker而引起的。

通过在cmd/powershell会话中运行以下命令,确保您试图托管的端口不在端口排除范围内:

netsh interface ipv4 show excludedportrange protocol=tcp

在阅读了这个stackoverflow问题后,我找到了这个问题:

无法启动IIS Express Web服务器,注册URL失败,访问被拒绝

史蒂夫

随着Visual Studio的关闭,我删除了临时文件夹iisexpress: C:\Users\<your_user>\AppData\Local\Temp\iisexpress

在我的情况下,由于某种原因,它是脉冲安全vpn绊倒了Visual Studio 2019社区版!解决方法是暂停vpn,启动调试解决方案,然后恢复vpn连接。

如果你使用的是VS 2017或VS 2019。Net Core,你可以直接进入launchSettings。只需更改iisSetting的applicationUrl键的端口号。

enter image description here

如果你不想重新启动你的can,一个解决方案是手动附加调试器。在我的情况下,应用程序启动,但visual studio无法连接到iis。在Visual Studio 2019中: 调试→附加到进程->通过iis过滤,并选择iisexpress.exe

在C: Drive上重新安装Windows时遇到了这个问题,但我的Visual Studio项目在安装后在E: Drive上完好无损。我已经通过删除visual studio项目文件夹中的.vs文件夹解决了这个问题。

首先:从项目中删除.vs文件夹(除去.sln文件),然后打开项目。

祝你好运

对我来说很容易。

  1. 清洗溶液
  2. 重新构建解决方案。
  3. 运行Ctrl + F5(不调试运行)

重启你的电脑,就可以了,至少对我来说是这样的。

由于Svenmarim已经所述,这主要是因为ip地址已经在使用中。 这个回答及其来自visualstudio开发人员社区的评论为我指明了正确的方向。在我的情况下,我试图从我的本地网络访问我的本地IISExpress实例,因此将我的ip地址与通过
使用我的IISExpress实例的相同端口绑定 netsh http add urlacl url=http://192.168.1.42:58938/ user=everyone
在通过
删除此绑定后 netsh http delete urlacl url=http://192.168.1.42:58938/

根据要求将我的评论复制到一个答案。

Net Core 2.2项目-经过巨大的斗争和尝试一切从删除。VS文件夹,删除IIS Express配置,更改端口号,更改绑定,并运行VS作为管理员,我终于解决了这个问题

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

文件是否损坏或不正确并不明显,甚至当它更改导致失败时也不清楚。

我已经尝试了这里列出的所有方法,但都没有真正帮助。 解决方案是简单地改变IIS服务器端口监听(显然80端口已经被占用,但错误消息没有这么说)

顺便说一句。在我的情况下,80端口被主窗口服务占用,我无法停止/杀死…

从主ISS管理器,进入默认网站并编辑绑定(下面的截图是波兰语-希望它能有所帮助)

编辑IIS绑定

然后我把端口80从http绑定(随便你喜欢)8081如下:

Change Http port to whatever you like

所以在那之后,所有的项目(网页,api)开始正常工作。

如果你有能力重新启动你的机器,那么就这样做👌,这解决了我的问题后,几乎一个小时试图解决这个问题,没有希望🤯。

手动更改http和https的端口(或禁用https)

我试图在URL "http://192.168.0.1:4000/"上启动应用程序,上述答案没有帮助。 最后,我将*:4000:localhost HTTP绑定添加到.vs/.../applicationhost.config,所以现在绑定部分看起来像这样:

<bindings>
<binding protocol="http" bindingInformation="*:4000:localhost" />
<binding protocol="http" bindingInformation="*:4000:192.168.0.1" />
</bindings>

它成功了

我建议使用以项目命名的配置文件进行调试,而不是使用IIS Express配置文件进行调试。这对我来说很有效。我再也不回IIS Express了!

根据问题的原因,解决方案可能比上面提出的要简单得多。我曾在重命名项目目录或包含项目的文件夹时遇到过此错误。重命名文件夹结构回到它是什么,为我解决了这个错误。当然,如果您真的想更改文件夹结构,这并不是完美的解决方案。

我的问题和其他人说的类似,但有点不同,可能会对别人有所帮助。我运行的是VS 2019和。net 5.0 ASP.NET。

博士TL;

确保项目的.vs\...\applicationhost.configlaunchSettings.json中的套接字绑定和所选配置匹配当前启用的网卡:)。


细节

我一直在摆弄我的.vs\...\applicationhost.configlaunchSettings.json,以便能够不仅在本地主机上托管,而且在我的网卡IP地址/端口(套接字)上进行另一个设备上的测试。最近,我添加了第二个套接字,让同事通过VPN测试一些东西。当VPN未连接时,我无法启动IIS。

我重新连接了VPN,一切都恢复正常了。然后在断开VPN连接后,我更新了launchSettings.json(并重新启动VS2019),但忘记更新applicationhost.config中的绑定。我相信IIS Express还可以再托管一次,但第二次就不行了。就在那时,我意识到在applicationhost.config绑定中仍然有VPN套接字。我更新了它,重启了VS2019,一切都很好。

在任务管理器中结束IIS工作进程帮助我解决了这个问题。

我在调试属性中禁用了SSL,然后再次启用它。这招很管用。

如果你有能力重启系统,那就重启吧。