2012-02-17 4 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が機能しない理由は何ですか?例外がLogTimeoutExceptionメソッドによってスローされません

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

タイムアウト限界に建てられた(90秒)を打っているとき、それはASHXページのどこかに投げられています。 –

+0

はあなたのashxページの本体で同じHttpExceptionを捕まえるだけです。そこからログを取ってください。 –

+0

OK、ロギング用のASHXページにハンドラを設定しましたが、どうすればテストできますか?要求のタイムアウトをシミュレートする良い方法はありますか? –