我的网站出现问题:
自定义错误对我不起作用。这应该将一般错误重定向到页面,将404错误重定向到另一个页面。它在本地工作,但不在托管环境中工作。
<customErrors defaultRedirect="GeneralError.aspx" mode="on">
<error statusCode="404" redirect="404Error.aspx" />
</customErrors>
编辑:好的我测试了错误的东西,它似乎适用于以下页面:
万维网。[域]的.com / doesntexist.aspx
但不适用于
万维网。[域]的.com / doesntexist
只有我把.aspx放在那里才有效。
编辑:有人知道我怎么能这样做,所以它适用于两个实例?
答案 0 :(得分:4)
这与您的主机运行的IIS的配置和版本有关。在7之前的IIS版本中,或者如果您使用“经典管道”运行IIS 7,实际上有两个http请求通道。一个人通过ASP.net处理.net请求,另一个管道转到IIS。 (即ASPX转到asp.net,.jpg转到IIS)
在您的情况下,不存在的页面将转到IIS,这是您指定的asp.net congi不适用。我敢打赌如果你输入www。[域名] .com / didntexist.jpg它不会转到你的自定义页面但是如果你输入www。[domain] .com / doesntexist.aspx它会。
Sp有几种解决方案,基于您拥有的IIS版本。如果您的主机使用IIS7,那么您可以使用Integrated Pipeline运行该站点,这意味着所有请求都将通过ASP.net并且将适用configuraiton。 Here is more info.
如果您没有运行IIS,则只能通过specifying the custom error codes in IIS itself进行修复。如果是这种情况,希望您的主持人允许这样做。
IIS6的另一种可能性是为非.net页面和文件创建自定义处理程序,并强制它们路由到asp.net,然后您的配置将适用。这可能不太理想,因为它可能成为维护噩梦和额外的代码/配置。
相关的SO问题:
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
答案 1 :(得分:-1)
Mozilla Firefox sometimes has a caching issue with favicons。
尝试直接将浏览器导航到文件:http://example.com/favicon.ico
。这会将其加载到Firefox的缓存中。关闭浏览器并重新加载托管网站。
检查您的托管服务提供商的IIS设置是否有404错误。检查您的托管服务提供商常见问题解答以了解IIS设置和404.他们可能禁止从web.config配置。