C# ASP.NET 4.5 Web表单自定义404页最佳实践

C# ASP.NET 4.5 Web表单自定义404页最佳实践,c#,asp.net,iis-7.5,http-status-code-404,urlrewriter.net,C#,Asp.net,Iis 7.5,Http Status Code 404,Urlrewriter.net,嗯,大约一个星期以来,我一直在网上搜索,尝试我自己的解决方案并测试结果。但不幸的是,我并没有得到令人满意的结果 问题详细信息: 使用iis7.5 问题是,;或者使用Response.Redirect()方法或声明customErrors和httpErrors部分发送到浏览器的第一个状态代码是302,然后是404 使用Server.Transfer()方法,甚至修改页面加载()中的查询字符串[]集合使用系统反射。这会将404状态代码直接发送到浏览器,但“页面名称”(URL)不是我自定义的404

嗯,大约一个星期以来,我一直在网上搜索,尝试我自己的解决方案并测试结果。但不幸的是,我并没有得到令人满意的结果

问题详细信息:

  • 使用iis7.5
问题是,;或者使用
Response.Redirect()方法或声明
customErrors
httpErrors
部分发送到浏览器的第一个状态代码是302,然后是404

使用
Server.Transfer()
方法,甚至修改
页面加载()中的
查询字符串[]
集合使用系统反射。这会将404状态代码直接发送到浏览器,但“页面名称”(URL)不是我自定义的404页面名称,而是请求的不存在的页面URL,这是一个大问题(可以使用Google Chrome developer tools>Network pane进行检查),我尝试了一种解决方法,使用JavaScript
window.history.pushState()更改浏览器地址栏中的URL但这并没有什么不同

我的问题是:

ASP.NET Web Forms 4.5中自定义404页面的最佳实践是什么;直接发送404 HTTP状态码作为第一个响应,在地址栏中保留404页面URL(没有重定向和JavaScript)

注意:如果为了让谷歌检测和识别最佳404页面,我缺少任何其他信息,请列出


谢谢。

我已经通过使用IIS 7.5的URL重写模块2.0解决了这个问题,使用这个模块后,404页面被测试人员成功识别

我发现没有必要保持404页面地址不变,它可能是不存在页面的URL

谢谢你的帮助