如何在ASP.net Web应用程序中处理PageRequestManagerTimeoutException?

akh*_*hil 3 javascript c# asp.net

我正在研究一个ASP.NET Web应用程序,它试图通过登录服务器从远程服务器下载一些文件.当我尝试下载文件时,它可以很好地处理小文件但是在下载750 KB的文件时显示以下异常.

在此输入图像描述

我正在定义 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);
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

有什么可能造成这个问题?

当我点击IgnoreContinue它继续顺利下载.我怎样才能克服这个问题?

提前致谢.:)

Ash*_*ngh 13

如果您需要处理超时异常,可以使用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>
Run Code Online (Sandbox Code Playgroud)

另外,如果需要,可以通过sdding AsyncPostBackTimeOut="600"//Time将AsyncPostBackTimeOut增加到脚本管理器:

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

AsyncPostBackTimeOut="600" >

</asp:ScriptManager>  
Run Code Online (Sandbox Code Playgroud)