我正在开发一个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);
}
}
}
有什么可能造成这个问题?
此外,当我点击
Ignore
或Continue
时,它会继续下载 顺利进一步。我怎样才能克服这个问题?
先谢谢。 :)
答案 0 :(得分:12)
如果您需要处理超时异常,可以使用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>
此外,如果需要,可以通过将AsyncPostBackTimeOut="600"//Time
sdding增加到脚本管理器来增加AsyncPostBackTimeOut。:
<asp:ScriptManager ID="ScriptManager1" runat="server"
AsyncPostBackTimeOut="600" >
</asp:ScriptManager>