Web.Config中的 defaultRedirect 问题

发布于 2024-12-02 11:05:58 字数 612 浏览 0 评论 0原文

我使用 Asp.net 4。

这里是我的 Web.Config 文件的设置。

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/ErrorPages/Oops.aspx">
    <error statusCode="404" redirect="/ErrorPages/404.aspx" />
</customErrors>

我需要对任何异常应用 defaultRedirect url,并仅对 Page Not Found 404 使用 redirectMode="ResponseRewrite"

目前通过此设置,我可以正确管理找不到页面(我能够获取 404.aspx 页面),但如果任何其他页面上出现异常,我会得到” Internet Explorer 无法显示网页”,并且我无法访问 defaultRedirect Oops.aspx

我在这里做错了什么?

I use Asp.net 4.

Here setting for my Web.Config file.

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/ErrorPages/Oops.aspx">
    <error statusCode="404" redirect="/ErrorPages/404.aspx" />
</customErrors>

I need to apply the defaultRedirect url for any Exception, and use the redirectMode="ResponseRewrite" for only Page Not Found 404.

With this setting at the moment I can manage properly the Page Not Found (I'm able to get the 404.aspx page) but if an exception arise on any other page I get the "Internet Explorer cannot display the webpage" and I'm not able to reach the defaultRedirect Oops.aspx.

What I'm doing here wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

倾城月光淡如水﹏ 2024-12-09 11:05:58

将 aspx 页面作为自定义错误重定向的目标的一个问题是,目标页面也会抛出非特定于页面的错误(例如 global.asax 中的错误;处理 web.config 中的错误),这可能会导致无限重定向循环。

因此,通常最好将静态 html 页面至少作为 defaultRedirect 的目标。

One problem with having an aspx page as the target of a custom errors redirect is that errors that aren't specific to a page (e.g. errors in global.asax; errors processing web.config) will also be thrown by the target page, which can result in an infinite redirect loop.

For this reason, it's often better to have a static html page as the target of at least the defaultRedirect.

瞎闹 2024-12-09 11:05:58

尝试将 ~ 放入重定向 URL 中。

重定向=“~/ErrorPages/404.aspx”

Try putting the ~ in the redirect URL.

redirect="~/ErrorPages/404.aspx"

濫情▎り 2024-12-09 11:05:58

错误页面内容有多少字节,是否设置了 200 OK 以外的 HTTP 状态代码?在默认情况下启用“显示友好 HTTP 错误消息”的 Internet Explorer 中,内容长度低于 512 字节的自定义错误页面将被 IE 浏览器抑制并替换为“友好”错误消息。

要查看这是否是您的问题,您可以尝试关闭“工具”、“Internet 选项”、“高级”、“设置”下的“显示友好 HTTP 错误消息”选项。它将位于“设置”区域的“浏览”类别下。

如果该页面显示时该选项已关闭,请尝试重新打开该选项并更改页面以添加图像或其他一些元素,使大小超过 512 字节长。

How many bytes is the error page content and does it set an HTTP status code other than 200 OK? In Internet Explorer with "Show friendly HTTP error messages" on, which is the default, custom error pages that have content under 512 bytes in length will be suppressed by the IE browser and replaced with the "friendly" error message.

To see if this is your problem, you can try turning off the "Show friendly HTTP error messages" option under Tools, Internet Options, Advanced, Settings. It'll be under the Browsing category in the Settings area.

If the page shows up with the option turned off, try turning it back on and changing your page to add an image or some other element that will make the size over 512 bytes long.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文