URL中的ASP.NET aspxerrorpath如何实现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (44)

我有一个网站,我使用web.config中的CustomErrors来指定一个自定义错误页面,这很好。自定义404页面也在IIS配置中指定(因为如果它不是,我没有得到我的自定义404页面)。

但是如果用户得到一个404来查看他们请求的URL并提供导航建议(如果适当的话),我就有了一些逻辑。这个逻辑依赖于aspxerrorpath值。在我的开发PC上,aspxerrorpath被正确地追加到URL上,如下所示: http:// localhost:3092 / FileNotFound.aspx?aspxerrorpath = / badpage.aspx,但在我的测试站点上,没有aspxerrorpath追加到URL,所以我所有的自定义逻辑都被绕过了,我的建议不起作用。我不确定这是否是IIS配置问题或其他问题。Web服务器是带有IIS 7的Windows Server 2008。

有什么想法吗?

提问于
用户回答回答于

可能需要将以下内容添加到web.config

<customErrors mode="On">
  <error statusCode="404" redirect="~/error404.aspx" />
</customErrors>

有关更多信息,请查看:http : //geekswithblogs.net/shahed/archive/2007/10/23/116278.aspx

我们可以利用IIS7功能来使用HTTPModules显示自定义404错误页面,如http://professionalaspnet.com/archive/2008/02/13/Enforcing-a-Custom-404-Page-in-ASP.NET的.aspx

用户回答回答于

如果错误被.NET捕获(并且使用web.config中指定的错误页面),则传递aspxerrorpath参数。如果使用开发Web服务器,或者IIS配置为不检查文件是否存在,则会发生这种情况。

如果IIS检查该文件是否存在,则使用在IIS中配置的自定义错误,并将查询的URL包含在查询字符串中

http://example.com/FileNotFound.aspx?404;http://example.com/badpage.aspx

扫码关注云+社区