向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> 
+1

我使用IIS7。另外,我正在使用'existingResponse =“替换”'功能,而system.web.customErrors只能重定向AFAIK – kenwarner

我希望我可以给多一些希望在这里,但经过广泛的互联网研究,似乎没有解决。无论何时启用此配置节点,即使调试之外没有明显的错误,也不会启动调试。

我以前注意到证书问题可能会导致类似的错误发生。显然,调试器没有看到它期望的结果,并因此失败。

我的解决方案是仅在我们的测试环境和以上版本中启用此指令,而将其禁用开发。