私はこのようなコードを持っています。 Response.End()をResponse.Flush()に置き換えると正常に動作します。 Response.End()とResponse.Flush()の違いは何ですか?違いは()
Q
違いは()
15
A
答えて
17
Response.Flush
すべての現在のクライアントに送信される出力をバッファリングし軍。 Flushメソッドは、要求処理中に複数回呼び出すことができます。
Response.Endの
クライアントに現在のすべてのバッファリングされた出力を送信し、 ページの実行を停止し、EndRequestのイベントを発生させます。
Response.Writeの後のページで処理を行わず、ページの処理を停止したい場合は、このコードを使用してください。
context.HttpContext.Response.Clear();
context.HttpContext.Response.Write(htmlString);
context.HttpContext.Response.Flush(); // send all buffered output to client
context.HttpContext.Response.End(); // response.end would work fine now.
0
MVC
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
Response.TransmitFile(Server.MapPath(ConfigurationManager.AppSettings["JICDocumentUploads"] + ProspectCode + "\\" + FileName));
Response.End();
JICDocumentUploads
で文書ファイルをダウンロードする方法:それはweb.config
ProspectCode
からのパスを保存したファイルです。これはダウンロード資料- ファイルのためのユニークなコードです名前:ダウンロードする選択したファイル
+0
これは、 'Response.End()'と 'Response.Flush()'の違いに関するオリジナルの質問と何が関係していますか? – dr0i
+0
これは全く質問に答えることができませんが、これは完全にテーマ外です – WhatsThePoint
ここで 'End()'の前に 'Flush()'を呼び出すことが本当に必要なのか不思議です。あなたが提供する定義から、 'End'はページの実行を止めて' EndRequest'を上げる前に 'Flush'と同じことをします...なぜ' End() 'の前に' Flush() 'を呼び出すのが賢明ですか? –
nevermind、私は上記のコードを含むコードで複雑な設定をしていて、 'Flush()'を削除すると、スレッドが中止されているという例外が出ます。 –
図のように、End Before Flushを呼び出す必要がないかのように表示されますが、実際にはEnd Without Flushを呼び出すとすべての種類のエラーが発生します。 – Roland