2012-06-29 71 views
2

我正在嘗試通過登錄服務器嘗試從遠程服務器下載某些文件的ASP.NET Web應用程序。當我嘗試下載一個文件時,它可以很好地處理小文件,但是當下載一個750 KB的文件時,它會顯示以下異常。如何在ASP.net Web應用程序中處理PageRequestManagerTimeoutException?

enter image description here

餘米定義HTTPRequest Timout = System.Threading.Timeout.Infinite;

我爲使用此代碼

byte[] buffer = new byte[32768]; 
      using (Stream input = getResponse.GetResponseStream()) 
      { 
       using (FileStream output = new FileStream(saveTo1, FileMode.OpenOrCreate)) 
       { 
        int bytesRead; 

        while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0) 
        { 
         output.Write(buffer, 0, bytesRead); 
        } 
       } 
      } 

什麼能可能要創建這個問題從服務器讀取文件?

而且當我點擊IgnoreContinue它延續了下載 順利更進一步。我怎樣才能克服這個問題?

在此先感謝。 :)

回答

11

如果您需要處理超時異常,您可以使用javascript處理它。將此添加到您的頁面。

<script type="text/javascript"> 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(requestEndHandler); 

// This function will handle the end request event 
function requestEndHandler(sender, args) { 
    if(args.get_error()){ 
     document.getElementById("errorMessageLabel").innerText = 
     args.get_error().description; 
     args.set_errorHandled(true); 
    } 
} 

</script> 
... 

<span id="errorMessageLabel"></span> 

此外,如果你願意,你可以通過sdding AsyncPostBackTimeOut="600"//Time到你的腳本經理增加AsyncPostBackTimeOut:

<asp:ScriptManager ID="ScriptManager1" runat="server" 

AsyncPostBackTimeOut="600" > 

</asp:ScriptManager> 
+0

我處理超時被其值設置爲-1是無限的方式。 – akhil

+1

如果不是非常重要,請勿使用無限值​​。有限的價值是一個安全的賭注。 –

+1

此時間值以毫秒爲單位 – akhil

相關問題