【问题标题】:Custom Error Pages using ExecuteURL in .NET ASPX application not working (Redirects work fine)在 .NET ASPX 应用程序中使用 ExecuteURL 的自定义错误页面不起作用(重定向工作正常)
【发布时间】:2014-12-04 21:43:23
【问题描述】:

这可行,它会根据需要重定向到 yahoo.com:

<httpErrors errorMode="Custom">
  <remove statusCode="401" subStatusCode="-1" />      
  <error statusCode="401" path="http://www.yahoo.com" responseMode="Redirect" />
</httpErrors>   

这不是,不同之处在于我在我的应用程序中指定了一个页面,而不是一个外部 URL:

<httpErrors errorMode="Custom">
  <remove statusCode="401" subStatusCode="-1" />      
  <error statusCode="401" path="/ErrorPages/401.aspx" responseMode="ExecuteURL" />
</httpErrors>   

我在屏幕上得到的错误是:

XML Parsing Error: no element found
Location: http://localhost/app/MyPage.aspx
Line Number 1, Column 1:

这个错误的状态码(通过 Firebug 看到)是 403。当我使用浏览器实际浏览到 /app/ErrorPages/401.aspx 时,我看到错误页面就好了。

我使用的是 Visual Studio 2012,应用程序通过 VS 部署在 IIS7 中作为虚拟目录。

我查看了所有可用的文档。知道我错过了什么吗?

【问题讨论】:

    标签: c# asp.net error-handling webforms web-config


    【解决方案1】:

    如果您使用的是虚拟目录,如果它不是绝对 URI,则需要在 path 属性中包含虚拟目录路径。

    【讨论】:

    • 有没有办法动态地做到这一点,以防虚拟目录发生变化?
    • 据我所知,不幸的是没有。使用 '~' 会导致 IIS 抛出异常。
    • 酷。我已接受您的回答,因为这确实解决了我收到的错误。
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2012-07-24
    • 2014-03-30
    • 1970-01-01
    相关资源
    最近更新 更多