我在做什么:

开放Visual Studio社区2015 File ->新建->项目 在Visual c#: Web -> ASP下。NET Web应用程序 Web应用程序 并按f5弹出错误“无法连接到web服务器'IIS Express'”。

删除applicationhost。config,位于Documents\IISExpress\config中,不会更改错误消息。(程序文件和程序文件(x86)中也有一个IISExpress文件夹。)

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

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

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

“框架”:{“框架”

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

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

我试过了:

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


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

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

为我工作(TM)。

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


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

右击web项目 调试选项卡 切换启用SSL“on”(如果它是关闭的,这是我的情况)


我不知道是什么导致了这个问题。 但是修理装置把它修好了。


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

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

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


退出VS并删除(项目)\. VS \applicationhost。配置文件。重启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应用程序项目的启动设置。json文件:

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },

to

  "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也分配给它,我删除了它。


我添加了. useurls ("https://localhost:<一些端口>/")到Program.cs。这似乎对我有用!


对于以下内容, 我所要做的就是导航到当前项目解决方案目录> .vs > config删除applicationhost。配置,然后重新启动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”有关。配置文件”。

享受吧!


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

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

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

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


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


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


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

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

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


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

右键单击项目并选择属性 转到Debug部分 在Web服务器设置下更改应用程序URL端口[只增加一个:)]


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


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

删除web应用程序的.vs\applicationhost。配置并尝试 一次。

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


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


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


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

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


我使用VS2017,我禁用工具>选项> Debugging >启用JavaScript调试ASP。NET然后工作。


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


对我来说,当我在DOS提示符上添加ipllisten时,IIS Express是不可访问的:netsh http add ipllisten MyIPAddress。我通过删除iplisten MyIPAddress来修复它:netsh http delete iplisten MyIPAddress。


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

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

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

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

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

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

IIS Express: The worker process for app pool 'WebApplicationNetCore AppPool', PID='23260', failed to initialize the http.sys communication when asked to start processing http requests and therefore will be considered ill by W3SVC and terminated. The data field contains the error number. IIS Express: The worker process failed to initialize correctly and therefore could not be started. The data is the error. HTTP Event: Unable to bind to the underlying transport for 192.168.1.42:52999. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.


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

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

其他的解决方案:

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


这个问题可能是因为[√]为你的项目选择了启用SSL(参见项目设置窗口中的调试选项卡),但Visual Studio决定傻傻地设置像http://localhost:32396这样的东西。失败的原因是1。它不是HTTPS;证书无效。要强制执行,您需要使用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…


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

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


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

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

.

转到可以看到项目解决方案和项目文件夹的文件夹(在文件资源管理器中显示隐藏项)。导航到你隐藏的。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命令如下:

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

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


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

文档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 |查找“44312”,其中44312是我的web应用程序的端口号。我注意到返回的不是通常的本地主机IP(127.0.0.1)。是一些外部IP。它告诉我IIS Express使用不同的IP。

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


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

通过以下方式:

关闭Microsoft Visual Studio。 使用“以管理员身份运行”重新打开它

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


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

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


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

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

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


在我的案例中(使用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键的端口号。


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


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


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

祝你好运


对我来说很容易。

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


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


As Svenmarim already stated, this mostly occurs because the ip adress is already in use. This answer and its comments from the visualstudio developer community pointed me to the right direction. In my case i was trying to access my local IISExpress instance from my local network and therefore binded my ip adress with the same port which uses my IISExpress instance via netsh http add urlacl url=http://192.168.1.42:58938/ user=everyone After removing this binding via netsh http delete urlacl url=http://192.168.1.42:58938/ it worked again.


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

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

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

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


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

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

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

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

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


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


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

<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中。config和launchSettings。json的项目和选择的配置匹配当前启用的网卡:)。


细节

我一直在摆弄我的.vs\…\applicationhost。config和launchSettings。json能够主机不只是在本地主机,但在我的网卡IP地址/端口(套接字)上测试在另一个设备。最近,我添加了第二个套接字,让同事通过VPN测试一些东西。当VPN未连接时,我无法启动IIS。

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


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


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

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


->关闭visual studio ->删除。vs文件->删除launchsettings.json

重启visual studio…

希望这能解决你的问题