パフォーマンスに問題を引き起こさhttpResponse.End()
ないものに置き換える方法を知っている人はいますか? ThreadAbortException
誰かが「HttpContext.Current.ApplicationInstance.CompleteRequest()」を実行することを提案しましたhttpResponse.End()
が、バッファリングされたデータをクライアントに送信するなど、すべてが実行されるわけではありません。これは私にとって問題です。
質問する
1708 次
2 に答える
3
まず、これが本当に重大な問題を引き起こしているとは思えません。ただし、とにかく一般的には良いアイデアではありません...それは例外の悪用です。(とにかく、IMO。)
ドキュメントから:
このメソッドは、ASP との互換性、つまり、ASP.NET より前の COM ベースの Web プログラミング テクノロジとの互換性のためにのみ提供されています。EndRequest イベントにジャンプしてクライアントに応答を送信する場合は、
CompleteRequest
代わりに呼び出します。
を呼び出した後も現在のメソッドが続行されることは明らかCompleteRequest
なので、現在のイベントの処理を完全に完了する必要があります。
于 2013-01-24T20:28:13.167 に答える
1
わかりました、ここで答えを見つけることができました。「Jay Zalos」の回答まで下にスクロールすると。httpResponse.End()
次の3行に置き換えました。
Response.Flush()
Response.SuppressContent = True
HttpContext.Current.ApplicationInstance.CompleteRequest()
于 2013-01-24T20:57:12.063 に答える