我在做什么:

开放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


当前回答

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

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

其他回答

我不会假装完全理解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。


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

我的问题和其他人说的类似,但有点不同,可能会对别人有所帮助。我运行的是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,一切都很好。

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

这对我很有用。

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

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

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

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

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

在cmd中尝试

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

然后按f5。 我不改变端口,删除文件或重启VS。