- - PR -
ASP.NET(C#) ThreadAbortExceptionの回避策について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-02-12 15:37
こんにちわ。
お世話になっております。 Response.End()メソッドを使用するとThreadAbortExceptionが発生し、 キャッチしても自動的にスローされてしまう特殊な例外であることは理解しました。 http://www.unisys.co.jp/club/net_view/20030327.html ただし、 Response.End()を使用している箇所はどうしても処理を中断させたいケースなので、 Thread.ResetAbort()メソッドは使用したくありません。 そこで Response.End()自体を使用せずに、 MSサポート情報にあるApplicationInstance.CompleteRequest()メソッドの使用を 試みたのですが、 記載にあるようなApplication_EndRequestイベントへのバイパスを行ってくれず、困っております。 http://support.microsoft.com/default.aspx?scid=kb;ja;312629 試しにPage_Loadメソッドに下記のようなコードを実装してみました。 ############################################ private void Page_Load(object sender, System.EventArgs e) { this.Context.ApplicationInstance.CompleteRequest(); //本来は↑ここで処理を止めて欲しい this.TextBox1.Text = "だめだこりゃ"; } private void Button1_Click(object sender, System.EventArgs e) { this.TextBox1.Text += "Button1_Clickだめだこりゃ"; } ############################################ 初回のPage_Loadで this.TextBox1.Text = "だめだこりゃ"; が通ってしまいます。 Button1のクリックイベント時にも Page_Loadのthis.TextBox1.Text = "だめだこりゃ"; および Button1_Clickメソッドを通ってしまいます。 CompleteRequest()メソッドを使用することで てっきりGlobal.asax.csのApplication_EndRequestメソッドまで 処理が飛んでくれると勝手に思い込んでいたのですが、 私はなにか大きな勘違いしているのでしょうか・・・? ご存知の方がいらっしゃいましたらご教授のほどよろしくお願いいたします。 |
1