gpt4 book ai didi

asp.net - httpError在web.config中的localhost上不起作用

转载 作者:行者123 更新时间:2023-12-03 07:43:14 25 4
gpt4 key购买 nike

我在我的webconfig中添加了以下内容。当站点托管到IIS时它起作用,但是当我在本地运行时不起作用。它给我错误的web.config错误。

<system.webServer>
<httpErrors errorMode="Custom" defaultPath="ShowError.aspx" defaultResponseMode="ExecuteURL">
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
<remove statusCode="405" subStatusCode="-1" />
<remove statusCode="406" subStatusCode="-1" />
<remove statusCode="412" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<remove statusCode="502" subStatusCode="-1" />
</httpErrors>
</system.webServer>

最佳答案

默认情况下,defaultPath属性是锁定的,这会导致500.19错误。您可以:

  • 通过从defaultPath中删除它来解锁applicationHost.config,我不建议这样做,因为那样一来,您就必须在每个开发人员和生产服务器上进行配置。
  • defaultPath中删除defaultResponseMode<httpErrors>,并在每个path上指定responseMode<error>,如下所示:
    <httpErrors errorMode="Custom">
    <clear />
    <error statusCode="404" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="403" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="401" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="405" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="406" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="412" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="500" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="501" responseMode="ExecuteURL" path="ShowError.aspx" />
    <error statusCode="502" responseMode="ExecuteURL" path="ShowError.aspx" />
    </httpErrors>

    单独指定每个状态代码似乎过分,但是使用httpErrors时没有其他方法。我建议您添加400(错误请求)。

  • 一些注意事项:
  • 您可以省略subStatusCode="-1",因为-1subStatusCode的默认值。
  • 如果要删除/替换所有默认的IIS错误页面,则最好使用<clear />
  • 在使错误页面正常工作时,您可能希望删除errorMode="Custom",因为这会向开发人员隐藏错误详细信息,从而降低调试时的生产率。仅针对远程请求返回一个良好的错误页面,这是默认值(errorMode="DetailedLocalOnly")将执行的操作。
  • 如果无法使错误页面正常工作,请尝试responseMode="Replace"。出于与上述相同的原因,您还希望避免在开发人员环境中使用此功能。
  • 关于asp.net - httpError在web.config中的localhost上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853851/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com