最近遇到一个需求,在设置503错误页面时,如果程序出错,服务器自动发邮件通知所有程序员,方便程序员及时解决问题。
想到好像global.cs文件里面好像有个erro事件,然后找到了Application_Error事件,代码如下
void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception currentException = Server.GetLastError(); // your handling code goes here ... Server.ClearError(); }
然后想想平时想得到详细的错误信息都是用Exception ex.StackTrace 这个属性的,这里应该也会有吧,然后通过监视currentException.StackTrace
发现里面虽然有东西,但是好像不是很详细,是错误的概写,想着应该还有更加深层的信息。又通过currentException . 出它的属性,看到一个InnerException,
通过 currentException.InnerException . 出属性,终于又看到了一个超喜欢的StackTrace, 监视currentException.InnerException.StackTrace看到了非常
详细的错误信息,好了,我要的东西得到了,就可以在此处调用发送邮件的方法了,以后每当程序出现503,我们的邮箱会同时出现一个错误信息的邮件,再也不用
担心网站出现问题半天才发现的问题了。