Application_Error异常处理
/// <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异常处理的更多相关文章
- Global.asax文件说明
Global.asax是我们的底层文件,第一次的IIS请求都会先去执行它里面的文件,所以学会它里面的函数是非常有必要的.而且我们总是忽略这里的知识点,总觉得这是不必须的,其实我们错了,这里才是程序的根 ...
- C#异常处理经验(原则与方法)
本文是异常处理经验性的文章,其实跟C#关系也不大.比较适合刚刚熟悉异常语法,而缺乏实战的读者.当然,经验老练的读者也可指出不足.给予意见.补充说明,一起完善文章,分享更多知识与经验. 1 ...
- 从零开始编写自己的C#框架(20)——框架异常处理及日志记录
最近很忙,杂事也多,所以开发本框架也是断断续续的,终于在前两天将前面设定的功能都基本完成了,剩下一些小功能遗漏的以后发现再补上.接下来的章节主要都是讲解在本框架的基础上进行开发的小巧. 本框架主要有四 ...
- Asp.Net事务和异常处理:
Asp.Net事务和异常处理: 一.什么是事务处理? 事务处理是一组组和成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性. 如果在事务过程中没有遇到错误, ...
- ASP.NET MVC中的统一化自定义异常处理
当ASP.NET MVC程序出现了异常,怎么处理更加规范? 1. 最简单的方法是设置<customErrors/>节点 <customErrors>节点用于定义一些自定义错误信 ...
- .NET MVC全局异常处理(一)
目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关的配置,但没有实际做过,以为改下设定就 ...
- SmartStore.Net、NopCommerce 全局异常处理、依赖注入、代码研究
以下是本人最近对NopCommerce和SmartStore.net部分代码的研究和总结,主要集中于:依赖注入.异常处理.对象映射.系统缓存.日志这些方面,供大家参考. NOP 3.8 /// < ...
- 转:异常处理之ThreadException、unhandledException及多线程异常处理
转载自:http://www.cnblogs.com/levin9/articles/2319251.html 一:ThreadException和unhandledException的区别 处理未捕 ...
- ASP.NET MVC异常处理方案
异常处理是每一个系统都必须要有的功能,尤其对于Web系统而言,简单.统一的异常处理模式尤为重要,当打算使用ASP.NET MVC来做项目时,第一个数据录入页面就遇到了这个问题. 在之前的ASP.NET ...
随机推荐
- Lintcode: Subarray Sum Closest
Given an integer array, find a subarray with sum closest to zero. Return the indexes of the first nu ...
- 转:python webdriver API 之简单对象的定位
对象(元素)的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的,因此元素定位就显得非常重要. (本书中用到的对象与元素同为一个事物)一个对象就像是一个人,他会有各种的特征(属性) , ...
- 02---Net基础加强
将普通日期格式:“2014年7月8日”转换成汉字日期格式:“二零一四年七月八日”.(暂时不考虑10日,13日,23日) class Program { static void Main(string[ ...
- 夺命雷公狗ThinkPHP项目之----企业网站15之文章删除的完成(单个)
我们文章最后一步就到他的删除了,这个其实是最简单的一个,废话不多说,先来写控制器: public function del(){ $id = I('ar_id'); if(M('Article')-& ...
- 给Debian安装Xfce桌面
1.sudo apt-get install xorg xdm xfce4 2.vi ~/.xinitrc,然后输入:exec xfce4,在终端输入startx命令后就能进入xfce4,或直接在 ...
- sql语句删除数据表重复字段的方法
大家都可能遇到字段重复的情况,网上很多人在找方法,也给出了一些方法,但是有的方法是误导大家,铁牛写出以下方法,方便大家使用 1.通过group by把重复的字段筛选出来,并建立临时表tmp 1 cre ...
- 《Focus On 3D Terrain Programming》中一段代码的注释一
取自<Focus On 3D Terrain Programming>中的一段: //--------------------------------------------------- ...
- SessionHelper
MXS&Vincene ─╄OvЁ &0000009 ─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...
- 《REWORK》启示录 发出你的心声——程序员与身体
Sound Like You 所谓的标题在这里并不是为了吸引眼球,不过也是为了吸引眼球,只是出发点已经不一样了.这是一篇适合给程序员看的关于健康的文章,也许你认识李开复也可以给他看看,上过养生过,觉得 ...
- android 学习随笔二十六(动画:属性动画)
属性动画,属性动画是真正改变对象的某个属性的值 * 补间动画,只是一个动画效果,组件其实还在原来的位置上,xy没有改变1.位移:* 第一个参数target指定要显示动画的组件* 第二个参数proper ...