protected void Application_Error(object sender, EventArgs e)
        {
            ILog log = LogManager .GetLogger(typeof( MvcApplication));
            Exception objErr = Server.GetLastError().GetBaseException();
            if (objErr.ToString().IndexOf("favicon.ico" )==-1)
            log.Error(objErr);
            Server.ClearError();
        }
 
本示例在应用程序统一记录错误日志, 可从事件查看器访问应用程序日志。
但在记录错误之后,“Server.ClearError();” 在这种情况下该页就为 空白页面
应该直接跳转,重定向到另一个更用户友好的错误页或者根据需要执行一些其他操作。
 

如何使用 Web.config 文件
如果您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错误,则将根据 Web.config 文件的 <customErrors> 部分中的设置处理错误。在 <customErrors> 部分,可将重定向页指定为默认的错误页 (defaultRedirect) 或者根据引发的 HTTP 错误代码指定特定页。您可使用此方法自定义用户收到的错误信息。

如果发生在应用程序以前的任一级别都未捕获到的错误,则显示这个自定义页。本节演示如何修改 Global.asax 文件,以便从不调用 Server.ClearError。因此,错误在作为捕获错误的最后一点的 Web.config 文件中进行处理。 1. 从上一个示例中打开 Global.asax 文件。 
2. 将 Server.ClearError 行注释掉,以便确保错误出现在 Web.config 文件中。 
3. 将所作更改保存到 Global.asax 中。代码看起来应类似如下形式: 
using System.Diagnostics;

protected void Application_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
string err = "Error Caught in Application_Error event/n" +
"Error in:" + Request.Url.ToString() +
"/nError Message:"+ objErr.Message.ToString() + 
"/nStack Trace:"+ objErr.StackTrace.ToString();
EventLog.WriteEntry("Sample_WebApp",err,EventLogEntryType.Error);
//Server.ClearError();
//additional actions...

}
 
将以下代码添加到 <customErrors> 部分,以便将用户重定向到自定义页: 
<customErrors defaultRedirect="errorStatus.htm" mode="On">
</customErrors>
备注:必须修改 defaultRedirect 属性中的文件路径,以便它引用相关的 Web 服务器和应用程序名称。 

最新文章

  1. boost.numpy编译报错:undefined reference to `PyInt_FromLong&#39; libboost_numpy.so: undefined reference to `PyCObject_AsVoidPtr&#39;
  2. JavaScriptSerializer序列化时间处理
  3. js插入拼接链接 --包含可变字段
  4. Websocket协议之php实现
  5. c++相关知识回顾
  6. pkill killall kill pidof
  7. 屏幕对象的F1/F4输入帮助功能
  8. libev事件库使用笔记
  9. JAVA之旅(十九)——ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习
  10. LeetCode Javascript实现 100. Same Tree 171. Excel Sheet Column Number
  11. flink-conf.yaml
  12. C#线程安全使用(四)
  13. SQLSERVER安装
  14. Elasticsearch集群管理工具head插件安装
  15. unigui 设置单元格颜色
  16. 20155234 Exp2 后门原理与实践
  17. SQL Server 查询优化 索引的结构与分类
  18. Jquery倒计时源码分享
  19. Android学习之Http使用Post方式进行数据提交(普通数据和Json数据)
  20. asp.net HttpModule和HttpHandler

热门文章

  1. java中new两个对象,在堆中开辟几个对象空间
  2. 51nod 1589 移数博弈 | 基数排序(ノಠ益ಠ)ノ彡┻━┻
  3. 【Cf Edu #47 F】Dominant Indices(长链剖分)
  4. 20165218 《网络对抗技术》Exp4 恶意代码分析
  5. Java之使用链表实现队列
  6. [SCOI2016] 背单词 (Trie树)
  7. GDB调试工具
  8. mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)
  9. 微信授权,openid 分享
  10. tp5.1 入口文件即报错