web-dev-qa-db-ja.com

Response.End()およびCompleteRequest()

Response.End()CompleteRequest()のそれぞれの長所と短所は何ですか?どこで使用すべきで、使用すべきではありませんか?私はこれを見ました 質問 しかし私は適切な答えを得ませんでした。

16
Raed Alsaleh

HttpResponse.Endは出力バッファーをクライアントにフラッシュし、現在の要求処理スレッドを終了します(これは悪いことです)が、HttpApplication.CompleteRequestはASP.NETに、ASP.NETパイプラインの将来のすべてのステージをすぐにスキップしてジャンプするように指示しますEndRequestステップに直接移動します(これにより、HttpApplication.EndRequestイベントも発生します)。その後、リクエストスレッドは通常のサポート終了後のクリーンアップを続行します。

つまり、Response.Endは射出座席のようなものです。すぐに物事を終わらせますが、コントロールを失い、不必要に過酷になる可能性があります。一方、CompleteRequestは、最寄りの空港に緊急着陸するようなものです。

31
Dai