IIS错误,无法在Web服务器上启动调试

77
我想在本地计算机上从IIS运行我的应用程序。我创建了虚拟目录并将应用程序添加到其中,在应用程序的属性文件夹中,我选中了“使用本地IIS Web服务器”的单选按钮。然后我开始运行我的应用程序,但出现以下错误:
无法在Web服务器上启动调试。请参阅常见配置错误的帮助。在没有调试器的情况下运行网页可能会提供更多信息。 确保服务器正常运行。通过进行调试.Start Without Debugging来验证web.config中没有语法错误。您可能还想参考在线文档中有关ASP.NET和ATL Server调试主题的内容。
如何消除这个错误?
我正在使用Windows 7和IIS 7.5上的Visual Studio 2010。

我已经在web.config中添加了以下设置: <requestLimits maxAllowedContentLength="2147483648" /> <verbs allowUnlisted="false"> <!--Allowed Verbs--> <add verb="GET" allowed="true" /> <add verb="POST" allowed="true" /> </verbs> </requestFiltering> 在这个设置之后,我遇到了上述错误。如果我删除这个设置,它就可以正常工作。有人知道为什么会发生这种情况吗?或者我需要允许任何特定的动词来进行调试? - Ashish Shukla
45个回答

47

以上问题可能有很多原因。

您需要检查以下内容:- 无法在 Web 服务器上启动调试

另外注意:转到 IIS 并检查您正在使用的应用程序池是否已启动。

请从命令行尝试此操作:

cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe -i

@sebastian:你报告的问题可能有很多原因。我已经添加了链接,请务必检查一下!!! - Rahul Tripathi
@sebastian:我更新了我的回答。看看是否有帮助!请检查“匿名身份验证”是否已启用。 - Rahul Tripathi
我收到的错误是“Microsoft.NET\Framework\v4.0.30319”不被识别为内部或外部命令。 - sebastian
@sebastian:希望你在系统中指定了正确的 Microsoft.Net 文件夹路径,并且你需要 4.0 框架!!! - Rahul Tripathi
4
我为了自己的利益并希望能帮助他人而添加此注释:每隔几个月,我们开发平台应用程序池的服务账户(不要问为什么是这样)密码会更改,导致应用程序池关闭。只需更新应用程序池的密码即可使其正常工作。 - Bill B
显示剩余4条评论

39

这个问题有多种解决方案,对我来说,我改变了我的计算机密码,但忘记在该应用程序池的高级设置的 进程模型身份 中更改它。

稍后运行 IISRESET 就解决了我的问题。


22

仅作为更新,因为我遇到了这个问题,并且在Visual Studio和IIS的所有设置都正确的情况下。

对我实际起作用的是以管理员身份运行Visual Studio - 我猜测需要在某个地方设置权限,但是我不知道在哪里或者需要设置什么。

还要注意的一点是,我配置了所有的网站都使用IIS中的DefaultAppPool,该应用程序池原本是ASP.NET V2,然后安装了.NET 4,DefaultAppPool被转换为.NET 4,因此没有一个站点可以编译(这引起了我的少量咒骂)。

希望能对某人有所帮助。


1
出现了相同的错误。以管理员身份运行后,它就可以工作了。 - Rohit Sharma

21

我见过许多不同的解决方案。

iisreset 对我来说起了作用。

只需打开提升权限的命令提示符并输入:

iisreset


那对我来说是解决方案,在此之前,我的代码在服务器上运行时出现了一些错误,导致堆栈溢出异常,我认为这就是引起这个错误的原因... - Jonathan Applebaum
它在使用CMD管理员权限时无效,但在使用PowerShell管理员权限时有效。 - Luis Hernandez

14
只是补充一下,我也遇到了这个问题,并通过禁用“加载用户配置文件”选项(不确定是否有任何副作用)来解决。这可以在“应用程序池”的“高级设置”中找到。

enter image description here

这样对我有用。


13
在我的情况下,问题是由于web.config文件中缺少debug="true"(system.web -> compilation)所导致的。
示例:
<system.web>
   <compilation debug="true" targetFramework="4.5.2" />
   ....
</system.web>

13

我在这个帖子或(可能重复的)问题上没有看到这个答案。

我通过以下方式解决了这个问题:

  • 打开任务管理器(ctrl+alt+del)
  • 进程选项卡下,结束IIS Worker Process任务(现在可能被列为Microsoft.IIS.Worker.Process或类似的内容)(如果您没有看到所有进程,则可能需要点击底部的更多详情
  • 然后转到服务选项卡,停止IISADMIN服务,再次启动。

运行程序,这应该会解决问题!祝你编码和调试愉快! :)


10
我正在运行Windows 10专业版,使用Visual Studio 2017,但以上提到的选项都不适用于我。解决方法是添加“Windows进程激活服务”。打开“启动”菜单,输入“打开或关闭Windows功能”,确保“Windows进程激活服务”被勾选。希望对大家有所帮助。图片如下:Screenshot

6
在我的情况下,DefaultAppPool 已停止,我编辑了 高级设置 并将 Identity 的值设置为 LocalSystem,然后启动 DefaultAppPool。

6
在我本地IIS上配置的10个站点中,只有一个站点出现了这个错误,所以我感觉它不是其他答案中的机器级问题,比如打开或关闭Windows功能或以管理员身份运行VS2015(另外9个站点在同一个VS中工作正常)。
对我来说,具体的错误是:
无法在Web服务器上启动调试。操作不支持。未知错误:0x80004005
问题最终被发现是web.config具有一个URL重写规则,将HTTP重写为HTTPS。注释掉此规则解决了问题。
简而言之-如果您有web.config URL重写规则,请尝试禁用所有这些规则(然后逐渐添加它们,如果有帮助)。

谢谢这个提示。相同的错误也只发生在众多项目中的一个上,所以我一直检查 web.config 直到找到触发它的原因。对我来说,是自定义错误部分! - Jamie Kitson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接