将 401 自定义错误添加到 system.webServer.httpErrors 会"Unable to start debugging on the web server"错误



我从一个空白的MVC 3 web应用程序开始。我在本地IIS中为localhost:80创建了一个新网站,并配置了我的新MVC 3项目,使用该web服务器而不是VS开发web服务器。此时,我可以像往常一样运行和调试项目。但如果我把这个加到我的网里。配置,我得到一个"无法在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使用的新元素。这看起来有点奇怪,但是尝试在system.web section下的web配置中添加以下内容:

<customErrors mode="RemoteOnly"  defaultRedirect="~/error">
    <error statusCode="401" redirect="~/Error401" />
</customErrors>

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

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

我的解决方案是只在我们的测试环境中启用这个指令,而在开发中禁用它。

相关内容

最新更新