请选择 进入手机版 | 继续访问电脑版

环境生态社区

 找回密码
 注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

查看: 1356|回复: 0

[网页设计] asp.net 自定义错误页

[复制链接]
发表于 2012-11-1 14:48:41 | 显示全部楼层 |阅读模式
1使用定制错误页面
  
虽然我们发送给用户的公用错误信息是安全的,就是说它不会威胁到应用程序的秘密,但是这样的信息并不好看。也许你希望用户永远也看不到这样的信息。相反,当处理请求的过程中,如果发生了一个为处理的错误,你希望能够显示自己的“定制错误页面”,显示出自己的品牌以及特定的错误信息。

向ASP.NET 应用程序中增加定制错误信息非常容易。首先,编写自己的 web页面,它可以是任何类型的文件:.htm,.aspx,.asp,等等。然后在应用程序的config.web文件中修改配置信息,让它指向这个文件。

举例说明,以下这个配置信息说明在发生了任何未能预定处理错误的情况下,浏览器都应该被重定向到“ErrorPage.aspx”页面:

需要在web.config中配置:
  1. <!--配置自定义错误,未关闭,打开,详细信息-->
  2. <system.web>
  3.         <customErrors mode="On" defaultRedirect="~/ErrorPage.aspx">
  4.         <error statusCode='500' redirect='~/Erorr500.htm'/>
  5.         <error statusCode='403' redirect='~/Erorr403.htm'/>
  6.         <error statusCode='404' redirect='~/Erorr404.htm'/>
  7.         <error statusCode='400' redirect='~/Erorr505.htm'/>
  8.         </customErrors>
  9. </system.web>
复制代码


“on”:意思是总是发出定制错误页面;

“off”:意思是从不发出定制错误页面(你总是看到原始的错误信息);

“remoteonly”:意思是只有当远程浏览器点击站点时才发出定制错误页面(而在实际机器上点击站点的开发人员看到的是详细的错误信息)。




2 在Global.asax文件中添加应用出错代码,写入系统日志文件
  1. protected void Application_Error(Object sender, EventArgs e)
  2. {
  3. Exception LastError = Server.GetLastError();
  4. String ErrMessage = LastError.ToString();
  5. String LogName = "MyLog";
  6. String Message = "Url " + Request.Path + " Error: " + ErrMessage;
  7. if (!EventLog.SourceExists(LogName))
  8. {
  9. EventLog.CreateEventSource(LogName, LogName);
  10. }
  11. EventLog Log = new EventLog();
  12. Log.Source = LogName;
  13. Log.WriteEntry(Message, EventLogEntryType.Information, 1);
  14. Log.WriteEntry(Message, EventLogEntryType.Error, 2);
  15. Log.WriteEntry(Message, EventLogEntryType.Warning, 3);
  16. Log.WriteEntry(Message, EventLogEntryType.SuccessAudit, 4);
  17. Log.WriteEntry(Message, EventLogEntryType.FailureAudit, 5);
  18. }
复制代码
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

快速回复 返回顶部 返回列表