读书人

实现项目中出现错误将错误信息写入文

发布时间: 2012-02-19 19:43:39 作者: rapoo

实现项目中出现异常,将异常信息写入文本文件中的功能.在测试的时候,为什么总是引发两次异常,内有代码~
Global.asax文件的关键代码:
void Application_Error(object sender, EventArgs e)
{
Exception x = Server.GetLastError().GetBaseException();
Logger logger = new Logger();
Logger.ErrorInfo info = new Logger.ErrorInfo("aaa", "TestApp", x.ToString());
//将错误信息记录到文本文件中
logger.SetErrorLog(info);
}

--------------------------------------------
web.config文件关键代码:
<system.web>
<customErrors mode="On" defaultRedirect="Error.html">
</customErrors>
</system.web>

---------------------------------------------

我在一个页面引发一个异常,如果<customErrors>元素的mode设置为On,则Application_Error执行两次,其中第一次是我引发的异常执行一次
,但不明白第二次引发的异常从哪来的(第二次引发异常的信息描述为"System.Web.HttpException: 文件不存在"),什么文件不存在?
但将Mode设置为RemoteOnly就没有问题,什么呢?

[解决办法]
Error.html
[解决办法]
顶 高手进来吧
[解决办法]
ding
[解决办法]
加上Server.ClearError();
可以参考一下下面的代码:

C# code
protected void Application_Error(Object sender, EventArgs e){    try    {        if(Convert.ToInt32(Application["tag"])>2)        {            Application["tag"]=1;            return;        }        Application["tag"]=Convert.ToInt32(Application["tag"])+1;        Exception objErr = Server.GetLastError().GetBaseException();        Application["errorPage"] = Request.Url.ToString();        Application["errorMsg"] =objErr.Message;        Server.ClearError();        Response.Redirect("Error.aspx");    }    catch{}}
[解决办法]
改为RemoteOnly
[解决办法]
呵呵,没研究
[解决办法]
Error.html存在吗?
当custom errors mode="on"时 因为你是在本机调试 系统既是服务器端又是客户端 所以捕获异常后 还要作为客户端执行自定义的那个出错页 找到不 就错了
[解决办法]
1、学习
[解决办法]
跟踪吧。
[解决办法]
呵呵,楼主在深入啊,确实没有研究过。
[解决办法]
如果楼主有Error.html文件的话,确实比较奇怪,理论上说一共有两个在异常未处理时将被ASP.NET调用的事件:
Page_Error event,提供捕获在Page级别发生错误的方法。
Application_Error event,提供捕获在代码中的任何地方发生错误的方法。
先执行Page_Error,后执行Application_Error。Page_Error中处理错误之后使用Server.ClearError方法清除最后一个错误,可以避免再调用Application_Error。
[解决办法]
探讨
引用:
Error.html存在吗?
当custom errors mode="on"时 因为你是在本机调试 系统既是服务器端又是客户端 所以捕获异常后 还要作为客户端执行自定义的那个出错页 找到不 就错了


存在的啊,都显示出来了啊

[解决办法]
如果有类间有继承判断可能会执行两次或多次
我的环境下配置为On时只执行一次
[解决办法]


我不是高手,为什么要把记录日志的东西放在这里呢?

读书人网 >asp.net

热点推荐