2012-02-17 73 views
0

我在我的web應用程序中處理文件上傳的ashx頁面上收到了很多超時。有沒有一種方法可以捕獲超時並記錄有關上傳的數據,以幫助我更好地理解問題所在?根據請求超時捕獲數據

記錄器看起來像這樣,我只需要將它附加到超時異常!

Private Sub LogTimeoutException(context As HttpContext) 
    'Gather the data 
    Dim sb As New StringBuilder() 
    sb.AppendLine(String.Format("Toal files: {0}", context.Request.Files.Count)) 
    For Each f As HttpPostedFile In context.Request.Files 
     sb.AppendLine(String.Format("{0} ({1}): {2}", f.FileName, f.ContentType, f.ContentLength)) 
    Next 

    'Log it 
    Dim l As New BitFactory.Logging.FileLogger(context.Server.MapPath("~/timeoutlog.txt")) 
    l.LogInfo(sb.ToString()) 
End Sub 

回答

0

任何原因爲什麼try catch不起作用?

Private Sub LogTimeoutException(context As HttpContext) 
    Dim sb As New StringBuilder() 
    Try 
     //gather the data 
     sb.AppendLine(String.Format("Toal files: {0}", context.Request.Files.Count)) 
     For Each f As HttpPostedFile In context.Request.Files 
      sb.AppendLine(String.Format("{0} ({1}): {2}", f.FileName, f.ContentType, f.ContentLength)) 
     Next 
    Catch he As HttpException  
     //Log it 
     Dim l As New BitFactory.Logging.FileLogger(context.Server.MapPath("~/timeoutlog.txt")) 
     l.LogInfo(sb.ToString()) 
    End Try 
End Sub 
+0

LogTimeoutException方法沒有拋出異常,當內置超時限制被觸發(90秒)時,它拋出ashx頁面的某處。 – 2012-02-18 22:00:42

+0

只是在您的ashx頁面的主體中捕捉到相同的HttpException。從那裏進行日誌記錄。 – 2012-02-18 22:46:29

+0

好的,我在ASHX頁面中設置了一個處理程序,用於記錄日誌,現在我該如何測試它?任何好的方法來模擬請求超時? – 2012-02-21 11:13:50