zoukankan      html  css  js  c++  java
  • 离奇的错误日志:System.Web.StaticFileHandler.GetFileInfo

    为了在系统出问题的时候给用户一个可接受的提示界面 并能为后期维护提供第一手资料 搞了个书写错误日志东西
    在web系统中直接在Global级别 进行截取和记录

    [csharp] view plaincopyprint?

    1. protected void Application_Error(object sender, EventArgs e)
    2. {
    3. Exception ex = Server.GetLastError().GetBaseException();
    4. if (ex != null)
    5. PubFunction.ErrorLogPrint(ex.StackTrace + ":" + ex.TargetSite.Name, ex.Message);//书写错误日志
    6. Response.Redirect("~/404.aspx");//转向提示界面
    7. }

    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");//转向提示界面 }
    只是近两天,发现错误日志中记录了大量的日志如下

    [html] view plaincopyprint?

    1. -----------------------------2012-03-22 17:08:57---------------------------
    2. 发生错误的语句: 在 System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
    3. 在 System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
    4. 在 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
    5. 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    6. 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously):GetFileInfo
    7. 错误信息:文件不存在。
    8. -----------------------------2012-03-22 17:09:26---------------------------
    9. 发生错误的语句: 在 System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
    10. 在 System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
    11. 在 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
    12. 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    13. 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously):GetFileInfo
    14. 错误信息:文件不存在。

    -----------------------------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.把断点打到

    [csharp] view plaincopyprint?

    1. Exception ex = Server.GetLastError().GetBaseException();

    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" 是网站的图标, 就是页面头中标题之前的那个小图标
    找到问题就好办了,创建一个图标文件,放到网站根目录下,既没有这条错误日志了,浏览该网站的页面时,也有图标了;嘿嘿 一举两得
    效果如下
    物流配货网http://wlphw.com/ QQ在线:471226865点击这里给我发消息

  • 相关阅读:
    来换网心得总结
    关于项目来换网
    数据库设计源代码
    自我介绍
    WC项目
    关于《现代软件工程》此书的疑问
    Swift基础语法(常量变量、数据类型、元组、可选、断言等)
    grunt快速学习
    Swift语言简介
    Swift简单入门教程:30分钟玩转Swift
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/2571642.html
Copyright © 2011-2022 走看看