Response.End()
生成しThreadAbortException
ます。
代わりに使用HttpContext.Current.ApplicationInstance.CompleteRequest
しても問題は解決しません。
Response.Flush()
では、代わりに使用できますかResponse.End()
Response.End()
生成しThreadAbortException
ます。
代わりに使用HttpContext.Current.ApplicationInstance.CompleteRequest
しても問題は解決しません。
Response.Flush()
では、代わりに使用できますかResponse.End()
Response.Flush()
バッファにあるものはブラウザに送信されますが、ページの処理は停止されないため、次のステップの実行が続行されます。
何をResponse.End()
するかは、asp.net Page Life Cycle の次の関数呼び出しで実行ステップを停止することです。 http://msdn.microsoft.com/en-us/library/ms178472.aspx
そのため、一連の呼び出しのループから抜け出すために、例外をスローする必要があります。
1 つの代替手段は、Response.Close()
これも実行ステップを停止することではなく、ブラウザとの接続を閉じた後に何かを送信しようとすると、おそらく他のエラーが発生する可能性があります。そうしないResponse.Close()
とFlush()
、ブラウザが予測できないデータを取得します。
あなたも読むことができます:endResponseをtrue VS CompleteRequestおよびセキュリティスレッドでページにリダイレクトします
ファイルをダウンロードする前に条件を使用Response.IsClientConnected
-
if (Response.IsClientConnected)
{
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.TransmitFile(Server.MapPath(@"yourpath" + fileName));
Response.Flush();
Response.Close();
}
多くの苦労の末、うまく機能しています。それがあなたにとってもうまくいくことを願っています。