我有一个网站,我在web.config中使用CustomErrors来指定一个自定义错误页面,并且工作得很好.自定义404页面也在IIS配置中指定(因为如果不是,我不会得到我的自定义404页面).
但是,如果用户获得404查看其请求的URL并制作导航建议(如果适用),我有一些逻辑可以启动.该逻辑依赖于aspxerrorpath值.在我的开发PC上,aspxerrorpath被正确地附加到URL,如下所示: http:// localhost:3092/FileNotFound.aspx?aspxerrorpath =/badpage.aspx,但是在我的测试站点上,没有附加到URL的aspxerrorpath,所以我的所有自定义逻辑都被绕过,我的建议不起作用.我不确定这是IIS配置问题还是其他问题.Web服务器是带有IIS 7的Windows Server 2008.
有什么想法吗?
非常感谢.
如果错误被.NET捕获(并且使用了web.config中指定的错误页面),则传递aspxerrorpath参数.如果您正在使用开发Web服务器,或者如果IIS配置为不检查该文件是否存在,则会发生这种情况.
如果IIS检查该文件是否存在,则使用IIS中配置的自定义错误,并且请求的URL包含在查询字符串中
http://example.com/FileNotFound.aspx?404;http://example.com/badpage.aspx
您可能必须将以下内容添加到web.config中
有关更多信息,请访问:http://geekswithblogs.net/shahed/archive/2007/10/23/116278.aspx
更新:我们可以利用IIS7功能使用HTTPModule显示自定义404错误页面,如http://professionalaspnet.com/archive/2008/02/13/Enforcing-a-Custom-404-Page-in-ASP.NET中所述的.aspx