IIS覆盖ASP.NET中的自定义404错误页面
我正在尝试创建一个404错误页面,目前我已经拥有以下所有内容/尝试了以下所有内容来尝试完成此操作。 当用户键入时:
HTTP://name/something.aspx
它就像它应该的那样工作。 但是如果用户键入:
HTTP://名称/ NotAFile
没有.aspx然后IIS7自己动手,我得到了IIS7附带的可爱错误页面。 目标是网站仅重定向404状态代码(因此不是200或302重定向)。 我在web配置中尝试过:
这适用于具有.aspx文件扩展名的URL,但不适用于没有扩展名的URL。 与global.asax中的此方法相同
void Application_Error(object sender, EventArgs e) { var serverError = Server.GetLastError() as HttpException; if (serverError != null) { if (serverError.GetHttpCode() == 404) { Server.ClearError(); Server.Transfer("~/error/NotFound.aspx"); } Server.Transfer("~/error/Default.aspx"); } }
对此有相同的结果:(我最后的尝试是将此应用到Web配置:
有了这个我只是得到一个没有任何东西的纯白色屏幕……任何想法或评论将不胜感激! 提前致谢!
您的应用程序似乎在经典管道模式下运行。 将其更改为集成,您的问题将得到解决。 这是一篇关于管道模式及其差异的文章 – http://learn.iis.net/page.aspx/508/wildcard-script-mapping-and-iis-7-integrated-pipeline/
以下代码适用于.aspx和其他文件类型:
Global.asax中
void Application_Error(object sender, EventArgs e) { var serverError = Server.GetLastError() as HttpException; if (serverError != null) { if (serverError.GetHttpCode() == 404) { Server.ClearError(); Response.Redirect("~/NotFound.aspx?URL=" + Request.Url.ToString()); } Response.Redirect("~/Default.aspx"); } }
Web.config文件
对于经典的asp你可以使用它
使用配置中的代码并提供错误页面的完整路径
- 清理字符串? 有没有更好的方法呢?
- 使用HTTP Post从Excel中插入SQL Server数据库中的数据
- 为Web请求实施速率限制算法的最佳方法是什么?
- HttpClient调用Windows-Authenication ApiController方法…但没有WindowsIdentity出现
- C# – HttpClient没有发送任何cookie
- 如何使用ASP.Net在SQL Server中插入文件?
- 堆栈跟踪行号错误,debug = false和compilerOptions =“/ debug:pdbonly”
- ASP.NET如何将文件流式传输给用户
- MVC代码优先:自己的模型和SimpleMembership用户之间的一对多关系