2011-07-21 25 views
1

使用下面的錯誤處理的Application_Error():使用MVC3和.Net錯誤處理獲取FileDoesNot Exist的URL?

protected void Application_Error() 
    { 
     Exception exception = Server.GetLastError(); 
     Response.Clear(); 

     HttpException httpException = exception as HttpException; 

     if (httpException != null) 
     { 
      string action; 

      switch (httpException.GetHttpCode()) 
      { 
       case 404: 
        // page not found 
        action = "HttpError404"; 
        break; 
       case 500: 
        // server error 
        action = "HttpError500"; 
        break; 
       default: 
        action = "General"; 
        break; 
      } 

      // clear error on server 
      Server.ClearError(); 

      Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message)); 
     } 
    } 

此前添加此,我的網頁渲染罰款。現在我已經添加了這個,我得到了約21個文件沒有發現異常。我最初認爲某些路由值是錯誤的(但是在你嘗試路由之前它們不會執行),評論他們,同樣的事情。

我跨過初始頁面加載,並且由於整個頁面一次呈現,一次,我無法追查這些來自哪裏,並且堆棧跟蹤不會給我我是什麼在 系統

在System.Web.StaticFileHandler.GetFileInfo(字符串 virtualPathWithPathInfo,字符串physicalPath,HttpResponse對象響應)
在System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext的 上下文,字符串overrideVirtualPath):尋找。 Web.DefaultHttpHandler.BeginProcessRequest(HttpContext上下文, Async回調回調,在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟, 布爾& completedSynchronously)

對象狀態)

我認爲這可能是在定義了CSS和腳本的地方發生的,但評論這些並沒有解決問題。

我該如何追蹤?

+0

UrlEncode exception.Message當你通過Response.Redirect – Chandu

回答

2

我敢打賭5塊錢就是favicon.ico文件,一些瀏覽器請求和你沒有提供的文件。在錯誤處理程序內部,只需在Debug模式下查看Request.Url屬性即可查看請求的URL,並知道哪個文件丟失。同樣,如果你打算像你一樣在錯誤處理程序的末尾重定向,調用Server.ClearError();沒有多大意義。

+0

這樣做......謝謝! – ElHaix