向 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 服务器上开始调试”错误的主要内容,如果未能解决你的问题,请参考以下文章

SPARK的计算向量化-已有的向量化项目

将数组向右而不是向左旋转

前向链接与后向链接

3、Kafka生产者-向Kafka写入数据

Matlab训练多层神经网络

如何向Map中添加数据