/// <summary>
/// 捕捉异常
/// </summary>
protected void Application_Error()
{
// 获得前一个异常的实例
var ex = Server.GetLastError().GetBaseException();
{
var sbError = new StringBuilder();
sbError.AppendFormat("Url OriginalString:{0}\r\n", Request.Url.OriginalString);
sbError.AppendFormat("URL PathAndQuery:{0}\r\n", Request.Url.PathAndQuery);
sbError.AppendFormat("URL.ToString():{0}\r\n", Request.Url.ToString());
sbError.AppendFormat("URL AbsoluteUri:{0}\r\n", Request.Url.AbsoluteUri);
var query = (string.IsNullOrEmpty(Request.Url.Query) ? "" : "?" + Request.Url.Query);
sbError.AppendFormat("Query:{0}\r\n", query);
sbError.AppendFormat("发生时间:{0}\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
sbError.AppendFormat("异常IP:{0}\r\n", PcHelper.GetInstance.GetIp());
sbError.AppendFormat("异常电脑名称:{0}\r\n", PcHelper.GetInstance.GetUserHostName());
sbError.AppendFormat("浏览器:{0}\r\n", PcHelper.GetInstance.GetBrowser());
var urlRefer = string.Empty;
if (Request.UrlReferrer != null)
{
urlRefer = Request.UrlReferrer.OriginalString;
}
sbError.AppendFormat("URLRefer OriginalString:{0}\r\n", urlRefer);
sbError.AppendFormat("错误时间:{0}\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
sbError.AppendFormat("错误文件:{0}\r\n", ex.Source);
sbError.AppendFormat("错误信息:{0}\r\n", ex.Message);
sbError.AppendFormat("引发错误的方法:{0}\r\n", ex.TargetSite);
sbError.AppendFormat("错误堆栈:{0}\r\n", ex.StackTrace); // 将错误记录到日志中
FileHelper.GetInstance.WriteToFile(Server.MapPath(CommonConst.ErrorLogPath), sbError.ToString());
}
} 补充
sbException.AppendFormat("发生时间:{0}", DateTime.Now);
            sbException.AppendFormat("错误描述:{0}", ex.Message.Replace("\r\n", ""));
            sbException.AppendFormat("错误对象:{0}", ex.Source);
            sbException.AppendFormat("错误页面:{0}", HttpContext.Current.Request.Url);
            sbException.AppendFormat("浏览器IE:{0}", HttpContext.Current.Request.UserAgent);
            sbException.AppendFormat("服务器IP:{0}", NetHelper.GetIPAddress());

Application_Error异常处理的更多相关文章

  1. Global.asax文件说明

    Global.asax是我们的底层文件,第一次的IIS请求都会先去执行它里面的文件,所以学会它里面的函数是非常有必要的.而且我们总是忽略这里的知识点,总觉得这是不必须的,其实我们错了,这里才是程序的根 ...

  2. C#异常处理经验(原则与方法)

         本文是异常处理经验性的文章,其实跟C#关系也不大.比较适合刚刚熟悉异常语法,而缺乏实战的读者.当然,经验老练的读者也可指出不足.给予意见.补充说明,一起完善文章,分享更多知识与经验.   1 ...

  3. 从零开始编写自己的C#框架(20)——框架异常处理及日志记录

    最近很忙,杂事也多,所以开发本框架也是断断续续的,终于在前两天将前面设定的功能都基本完成了,剩下一些小功能遗漏的以后发现再补上.接下来的章节主要都是讲解在本框架的基础上进行开发的小巧. 本框架主要有四 ...

  4. Asp.Net事务和异常处理:

    Asp.Net事务和异常处理: 一.什么是事务处理? 事务处理是一组组和成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性. 如果在事务过程中没有遇到错误, ...

  5. ASP.NET MVC中的统一化自定义异常处理

    当ASP.NET MVC程序出现了异常,怎么处理更加规范? 1. 最简单的方法是设置<customErrors/>节点 <customErrors>节点用于定义一些自定义错误信 ...

  6. .NET MVC全局异常处理(一)

    目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关的配置,但没有实际做过,以为改下设定就 ...

  7. SmartStore.Net、NopCommerce 全局异常处理、依赖注入、代码研究

    以下是本人最近对NopCommerce和SmartStore.net部分代码的研究和总结,主要集中于:依赖注入.异常处理.对象映射.系统缓存.日志这些方面,供大家参考. NOP 3.8 /// < ...

  8. 转:异常处理之ThreadException、unhandledException及多线程异常处理

    转载自:http://www.cnblogs.com/levin9/articles/2319251.html 一:ThreadException和unhandledException的区别 处理未捕 ...

  9. ASP.NET MVC异常处理方案

    异常处理是每一个系统都必须要有的功能,尤其对于Web系统而言,简单.统一的异常处理模式尤为重要,当打算使用ASP.NET MVC来做项目时,第一个数据录入页面就遇到了这个问题. 在之前的ASP.NET ...

随机推荐

  1. vs2015社区版不支持installshield

    开始学习vs了 下一步就是在这个平台上提升技术咯. 写了老师上课讲的算法 生成了个VB程序结果不能在别的电脑上运行 .幸好我自己测试了下.要是直接拿去学校不是很~ 然后我就想到当初接触易语言时候的搞静 ...

  2. Activity之间的数据传递

    最常用的Activity之间的数据传递. btnStartAty1.setOnClickListener(new View.OnClickListener() { @Override public v ...

  3. having 子句

    having 子句-->过滤分组,用于限制分组显示结果 a.行已经被分组 b.使用了分组函数 c.满足having子句中条件的分组将被重写

  4. php获取文件后缀名格式

    function get_extension($file) { substr(strrchr($file, '.'), 1); } 第2种方法: function get_extension($fil ...

  5. springday02-go4

    1.复制xml到container/annotation下2.新建Waiter类,构造函数,初始化以及销毁函数3.在Waiter方法体前面加上@Component4.xml中添加组件扫描代码5.tes ...

  6. struts2中Double类型的转换

    今天做项目,ssh + Extjs,页面js中定义了几个NumberField,对应的value都是double类型的,其中有个NumberField的name为 name,结果执行的时候报错了,说找 ...

  7. (转)oracle 查看表所占用的空间大小

    1.查看表所占空间 SELECT   TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999')   CNT_MB     FROM   ...

  8. 利用API 建立Dependent Value Set

    . 建立SET fnd_flex_val_api.create_valueset_independent(v_set_name ,v_description ,v_security ,v_enable ...

  9. Ajax错误 “SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成” 的归纳总结

    最近在做Asp.net项目的时候,用Ajax访问服务器数据有时候老是莫名其妙的报错:SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而 ...

  10. Three.js - 网页3D应用的普及已经指日可待了

    Three.js可以高效实现3D效果,真不赖.