向system.webServer.httpErrors添加401自定义错误会导致“无法在Web服务器上启动调试”错误
问题描述:
我从一个空白的MVC 3 Web应用程序开始。我在本地IIS中为localhost:80创建了一个新网站,并将我的新MVC 3项目配置为使用该Web服务器而不是VS开发Web服务器。在这一点上,我可以像平常一样运行和调试项目。但是,如果我将此添加到我的web.config中,则会出现“无法在Web服务器上启动调试”错误。我可以选择开始不调试,并且工作正常。这是怎么回事?向system.webServer.httpErrors添加401自定义错误会导致“无法在Web服务器上启动调试”错误
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="401"/>
<error statusCode="401" responseMode="ExecuteURL" path="/Error401" />
</httpErrors>
</system.webServer>
答
httpErrors
是仅由IIS7使用的新元素。这似乎有点怪异,但是尝试添加在Web配置以下system.web section
下:
<customErrors mode="RemoteOnly" defaultRedirect="~/error">
<error statusCode="401" redirect="~/Error401" />
</customErrors>
答
我希望我可以给多一些希望在这里,但经过广泛的互联网研究,似乎没有解决。无论何时启用此配置节点,即使调试之外没有明显的错误,也不会启动调试。
我以前注意到证书问题可能会导致类似的错误发生。显然,调试器没有看到它期望的结果,并因此失败。
我的解决方案是仅在我们的测试环境和以上版本中启用此指令,而将其禁用开发。
我使用IIS7。另外,我正在使用'existingResponse =“替换”'功能,而system.web.customErrors只能重定向AFAIK – kenwarner