3

サーバーにログインしてリモートサーバーからいくつかのファイルをダウンロードしようとする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と、ダウンロードがさらにスムーズに続行されます。どうすればこの問題を克服できますか?

前もって感謝します。:)

4

1 に答える 1

14

タイムアウト例外を処理する必要がある場合は、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>  
于 2012-06-29T07:47:11.907 に答える