为了在系统出问题的时候给用户一个可接受的提示界面 并能为后期维护提供第一手资料 搞了个书写错误日志东西
在web系统中直接在Global级别 进行截取和记录
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
if (ex != null)
PubFunction.ErrorLogPrint(ex.StackTrace + ":" + ex.TargetSite.Name, ex.Message);//书写错误日志
Response.Redirect("~/404.aspx");//转向提示界面
}
只是近两天,发现错误日志中记录了大量的日志如下
-----------------------------2012-03-22 17:08:57---------------------------
发生错误的语句: 在 System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
在 System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
在 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously):GetFileInfo
错误信息:文件不存在。
-----------------------------2012-03-22 17:09:26---------------------------
发生错误的语句: 在 System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
在 System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
在 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously):GetFileInfo
错误信息:文件不存在。
而网站却是可以正常工作的,并没有转到错误页面 ,很是纠结
1.把断点打到
Exception ex = Server.GetLastError().GetBaseException();
这块,查看及时变量和查看堆栈信息 并没有获得有价值的东西
后来在 http://forums.asp.net/t/1360302.aspx上得到提示
2.在调试过程中直接跟踪 Server -> Non-Public Members -> _context -> Request -> AppRelativeCurrentExecutionFilePath这个级别的信息,在这个信息中
终于发现了一张图片的路径信息,而这张图片的路径已经发生改变 。
3.直接在整个项目级别,查找使用这张图片的地方,把路径修改正确
4.终于不再记录这条错误了……
今天又出问题了,错误日志一如既往的出现上面的日志记录,又纠结了
同理,按照上述的过程 找到一个新东西" ~/favicon.ico" 这是个神马东东? 没记得网站中有用到它啊
还好在此处找到资料," ~/favicon.ico" 是网站的图标, 就是页面头中标题之前的那个小图标
找到问题就好办了,创建一个图标文件,放到网站根目录下,既没有这条错误日志了,浏览该网站的页面时,也有图标了;嘿嘿 一举两得
效果如下