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页面……你需要弄清楚需要什么. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何使reCAPTCHA与ASP.Net(验证码)中的ValidationGroup一起
- asp.net-mvc – 域vs DTO vs ViewModel – 如何和何时使用它
- asp.net-mvc – 不能删除数据库,因为它目前正在使用MVC
- asp.net-mvc-4 – 如何在MVC4中呈现远程ReportViewer aspx页
- asp.net – 我从添加引用对话框中找不到System.Web.MVC [我
- ASP.NET无法访问IIS元数据库
- asp.net – 为什么Web架构松散耦合?
- asp.net-mvc – 关闭剃刀中的HTML编码
- asp.net – 完全替换Swashbuckle UI
- asp.net-mvc – asp.net mvc3 jquery ui对话框和客户端验证
- ASP.NET MVC – 如何实现可重用的用户控件和维护
- asp.net-mvc – ASP.NET MVC / EF4 / POCO /存储
- asp.net-mvc-4 – MVC 4.5 Web API路由无法正常工
- asp.Net MVC视图模型在帖子上是空的
- ASP.NET成员资格创建用户,而不需要QuestionAndAn
- asp.net – 是否可以访问位于另一个项目的MVC视图
- asp.net-web-api – Web API中的Actions和QueryS
- 如何更新asp.net网站(刚更改的文件)
- asp.net-mvc – 建立与SQL Server的连接时发生网
- asp.net – 如何和在哪里调用Database.EnsureCre
