ASP.NET 2.0:编写错误页面的最佳实践
在asp.net 2.0网站上,编写错误页面的最佳方法是什么.我在以下位置看过以下部分:
> Web.Config <customErrors mode="RemoteOnly" defaultRedirect="~/Pages/Common/DefaultRedirectErrorPage.aspx"> > Global.asax void Application_Error(object sender,EventArgs e) { } 我没有得到如何以最佳方式使用它们来进行错误处理. 请指导我最好的方法. 解决方法
在我的全局asax中,我总是检查它是什么类型的http错误…
然后转移到web.config中指定的正确错误页面 http状态代码的一些背景是importaint,以了解它们的处理原因: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes 我的web.config看起来像这样 <customErrors mode="On" defaultRedirect="~/error.aspx" > <error statusCode="404" redirect="~/lost.aspx" /> <error statusCode="500" redirect="~/error.aspx" /> </customErrors> 我丢失的页面中有逻辑,试图找到他们可能一直在寻找的页面的链接,以及其他一些格式. 我的错误页面有点不同,显示一些错误消息, 所以我处理两者不同. 取决于您是否有安全的网站区域,您可能需要处理401/403? protected void Application_Error(object sender,EventArgs e) { var context = Context; var error = context.Server.GetLastError() as HttpException; var statusCode = error.GetHttpCode().ToString(); // we can still use the web.config custom errors information to // decide whether to redirect var config = (CustomErrorsSection)WebConfigurationManager.GetSection("system.web/customErrors"); if (config.Mode == CustomErrorsMode.On || (config.Mode == CustomErrorsMode.RemoteOnly && context.Request.Url.Host != "localhost")) { // set the response status code context.Response.StatusCode = error.GetHttpCode(); // Server.Transfer to correct ASPX file for error if (config.Errors[statusCode] != null) { HttpContext.Current.Server.Transfer(config.Errors[statusCode].Redirect); } else HttpContext.Current.Server.Transfer(config.DefaultRedirect); } } 我服务器转移的原因是搜索引擎不会混淆,并保持我的网站管理员日志有意义…如果你重定向你返回一个http状态302告诉浏览器转到重定向到…然后这个页面下一页返回状态代码200(ok). 302 – > 200,或甚至302 – > 404有不同的含义,只有404 …… 然后说我的404错误页面我确保我设置了http错误的状态代码: protected void Page_PreRender(object sender,EventArgs e) { Response.Status = "404 Lost"; Response.StatusCode = 404; } 这篇文章对我有帮助,我知道我想做什么,但我喜欢这段代码看web.config设置… http://helephant.com/2009/02/improving-the-way-aspnet-handles-404-requests/
EDITS
>不,您可以在错误页面上执行此操作,
>我使用2,因为丢失的页面应该
>这取决于网站的类型你有.你得到的错误是一样的方式,但你用它做什么取决于您.在我丢失的页面上,我搜索用户可能已经拥有的一些内容寻找.我记录的错误页面错误,所以用户友好的oops页面……你需要弄清楚需要什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC与Webforms:替换WebForms控件
- .netcore 实现基于 cron 表达式的任务调度
- asp.net-mvc – 如何限制访问我的服务器上的pdf文件?
- asp.net – 如何从Visual Studio 2010 SP1运行时捕获IIS Ex
- asp.net-mvc – 我如何编写一个ActionFilter来确保AntiForg
- asp.net-mvc – 在EF CF中添加/更新导航属性
- asp.net – .NET OutputCache指令不起作用
- asp.net-mvc – 在同一个流连接上返回多个结果以实现HTML5
- ASP.NET第一次访问慢的解决方法(MVC,Web Api)
- asp.net – 使用MVC 4的.NET 4.5数据访问应用程序块
- asp.net-mvc-5 – ASP.NET MVC中Controller的模型
- asp.net-mvc-2 – 来自下拉列表的id值的Html.Act
- asp.net-mvc – ASP.NET MVC应用程序的WatiN最佳
- asp.net – 如何在.aspx页面中访问c#变量的值?
- DevExpress ASP.NET示例资源最全分享!(一)
- asp.net-mvc-3 – CSS3 @ font-face休息Razor解析
- asp.net-mvc – 如何扩展html.textboxfor以删除n
- asp.net-mvc – 上传文件并验证文件扩展名和文件
- asp.net – 身份使用Web API授权属性角色
- asp.net-mvc – 如何在ASP.NET MVC控制器中读取G