我在做什么:

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


当前回答

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


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

其他回答

只需关闭visual studio并重新打开并执行。 这对我很管用。

对于以下内容, 我所要做的就是导航到当前项目解决方案目录> .vs > config删除applicationhost。配置,然后重新启动VS和正常运行没有问题。

.vs是一个隐藏文件夹

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.

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

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

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

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

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

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

参见https://stackoverflow.com/a/24957146/1236397