向 system.webServer.httpErrors 添加 401 自定义错误会导致“无法在 Web 服务器上开始调试”错误
Posted
技术标签:
【中文标题】向 system.webServer.httpErrors 添加 401 自定义错误会导致“无法在 Web 服务器上开始调试”错误【英文标题】:Adding 401 custom error to system.webServer.httpErrors gives "Unable to start debugging on the web server" error 【发布时间】:2012-01-06 10:32:06 【问题描述】:我从一个空白的 MVC 3 Web 应用程序开始。我在本地 IIS 中为 localhost:80 创建了一个新网站,并将我的新 MVC 3 项目配置为使用该 Web 服务器而不是 VS 开发 Web 服务器。此时我可以正常运行和调试项目。但是,如果我将它添加到我的 web.config 中,我会收到“无法在 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>
【问题讨论】:
【参考方案1】:httpErrors
是新的元素,只被 IIS7 使用。这似乎有点奇怪,但是尝试在system.web section
下的 web 配置中添加以下内容:
<customErrors mode="RemoteOnly" defaultRedirect="~/error">
<error statusCode="401" redirect="~/Error401" />
</customErrors>
【讨论】:
我正在使用 IIS7。另外,我希望使用existingResponse="Replace"
功能,而 system.web.customErrors 只能重定向 AFAIK【参考方案2】:
我希望我能在这里给更多的希望,但是经过广泛的互联网研究,似乎没有解决方案。每当启用此配置节点时,即使在调试之外没有明显错误,调试也不会开始。
我之前注意到证书问题可能会导致发生类似错误。显然,调试器没有看到预期的结果,因此失败了。
我的解决方案是仅在我们的测试环境及以上环境中启用此指令,同时将其禁用以进行开发。
【讨论】:
以上是关于向 system.webServer.httpErrors 添加 401 自定义错误会导致“无法在 Web 服务器上开始调试”错误的主要内容,如果未能解决你的问题,请参考以下文章