为什么在 ASP.NET 中只有某些页面会出现自定义 http 错误?

发布于 2024-12-03 08:54:35 字数 468 浏览 0 评论 0原文

我的网站遇到问题:

自定义错误对我不起作用。这应该将一般错误重定向到一个页面,并将 404 错误重定向到另一个页面。它可以在本地运行,但不能在托管环境中运行。

<customErrors defaultRedirect="GeneralError.aspx" mode="on">
    <error statusCode="404" redirect="404Error.aspx" />
</customErrors>

编辑:好的,我对错误进行了更多测试,它似乎适用于以下页面:

www.[domain].com/doesntexist.aspx

但不适用于

www.[domain].com/doesntexist

它仅适用于我输入.aspx 在那里。

编辑:有人知道我如何制作它,以便它适用于这两种情况吗?

I'm having a problem with my site:

Custom errors aren't working for me. This should redirect general errors to a page, and 404 errors to another. It works locally but not in the hosted environment.

<customErrors defaultRedirect="GeneralError.aspx" mode="on">
    <error statusCode="404" redirect="404Error.aspx" />
</customErrors>

Edit: Ok i tested the error thing a little more, and it seems to work for pages like:

www.[domain].com/doesntexist.aspx

but not for

www.[domain].com/doesntexist

It only works if i put .aspx there.

Edit: anyone knows how i can make it so it works for both instances?

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

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

发布评论

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

评论(2

爱的那么颓废 2024-12-10 08:54:35

这与您的主机运行的 IIS 的配置和版本有关。在 IIS 7 之前的版本中,或者如果您使用“经典管道”运行 IIS 7,则 http 请求实际上会经过两个通道。一个通过 ASP.net 处理 .net 请求,另一个管道转到 IIS。 (即 ASPX 转到 asp.net,.jpg 转到 IIS)

在您的情况下,不存在的页面将转到 IIS,您指定的 asp.net congi 不适用。我敢打赌,如果您输入 www.[domain].com/doesntexist.jpg 它不会转到您的自定义页面,但如果您输入 www.[domain].com/doesntexist.aspx 它会。

根据您使用的 IIS 版本,有多种解决方案。如果您的主机使用 IIS7,则可以使用集成管道,意味着所有请求都通过 ASP.net,并且配置将适用。 这里有更多信息。

如果您没有运行 IIS,您可以只需通过 在 IIS 本身中指定自定义错误代码。如果是这种情况,希望您的主机允许这样做。

IIS6 的另一种可能性是为非 .net 页面和文件创建自定义处理程序,并强制它们路由到 asp.net,然后应用您的配置。但这是不可取的,因为它可能会成为维护噩梦和额外的代码/配置。

相关SO问题:

IIS overriding custom 404 error page in ASP.NET < /一>

<一href="https://stackoverflow.com/questions/3874353/how-to-get-custom-error-pages-working-for-classic-asp-with-iis-7-integrated-pipel">如何获取自定义使用 IIS 7 集成管道的经典 ASP 的错误页面

站点未在经典管道模式下重定向到默认文档

This has to do with your configuration and version of IIS your host is running. In versions of IIS before 7, or if you are running IIS 7 with the "classic pipeline", there are actually two channels that http requests go though. One handles .net requests though ASP.net, and the other pipeline goes to IIS. (i.e. ASPX goes to asp.net and .jpg goes to IIS)

In your case, non existent pages are going to IIS, this your asp.net congi you specified does not apply. I bet if you type in www.[domain].com/doesntexist.jpg it will not go to you custom page but if you type www.[domain].com/doesntexist.aspx it will.

Sp there are several solutions based on what version if IIS you have. If your host is using IIS7, then you can run the site with the Integrated Pipeline, meaning all request go through ASP.net and configuraiton will apply. Here is more info.

If you are not running IIS, you can only fix this by specifying the custom error codes in IIS itself. If this is the case, hopefully your host will allow this.

One other possibility for IIS6, would be to create custom handlers for non .net pages and files, and force them to route to asp.net, then your configuration would apply. This would not be desirable though as it could become a maintenance nightmare and additional code/configuration.

Related SO questions:

IIS overriding custom 404 error page in ASP.NET

How to get Custom Error Pages working for Classic ASP with IIS 7 Integrated Pipeline

Site not redirecting to Default Document in Classic pipeline mode

超可爱的懒熊 2024-12-10 08:54:35

Mozilla Firefox 有时会出现网站图标缓存问题
尝试直接将浏览器导航到该文件:http://example.com/favicon.ico。这会将其加载到 Firefox 的缓存中。关闭浏览器并重新加载您的托管站点。

检查托管提供商的 IIS 设置是否有 404 错误。检查您的托管提供商常见问题解答以了解 IIS 设置和 404。他们可能不允许从 web.config 进行配置。

Mozilla Firefox sometimes has a caching issue with favicons.
Try navigating your browser directly to the file: http://example.com/favicon.ico. This will load it into Firefox's cache. Close the browser and reload your hosted site.

Check your hosting provider's IIS settings for 404 errors. Check your hosting providers FAQ for IIS settings and 404. They may be disallowing configuration from web.config.

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