2010-12-06 12 views
12

このエラーがありましたスレッドが中止されました。、今日の午後はエラーログに記録されています。Response.Redirectとスレッドがエラーを中止しましたか?

このエラーの原因となったコードは次のとおりです。

Response.Redirect("Login.aspx", true); 

私はfalsebool値を変更した場合は、エラーログが空になると、このエラーが再び来て停止しますが、プログラムが動作を停止します。

私はそれをそのままにしておくと、このエラーが迷惑になるようです。

endResponseパラメータの値としてtrueに渡す代わりに知りたいと思っています。

+2

http://msdn.microsoft.com/en-us/library/a8wa7sdt(VS.80).aspx – Mike

+1

Respose.RedirectはResponse.Endを内部的に呼び出すため、 'false'を使用して抑制することができます。 (Response.Redirect(Login.aspx、false);)しかし、プログラムの動作を停止させるべきではありません。 – wizzardz

+1

例外が発生した場合に処理されないリダイレクト後に他のロジックが処理されている場合、プログラムの動作を停止することができます。 –

答えて

17

例外的な状況ではなく、ASP.NETがフロー制御の例外を使用しているため、この例外が発生し、それを飲み込むことがあります。

try 
{ 
    // Do stuff. 
} 
catch(ThreadAbortException) 
{ 
    // Do nothing. ASP.NET is redirecting. 
    // Always comment this so other developers know why the exception 
    // is being swallowed. 
} 
catch(OtherExceptionTypes ex) 
{ 
    // Log other types of exception. 
} 
+0

通常の例外の代わりにスレッド例外を使用すると、エラーログには何が出力されますか? –

+0

例外を捕まえて飲み込んだ場合、何も記録されません。なぜなら例外がログに記録される場所に到達しないからです。また、例外の仕組みについても読んでおく必要があるように思えます。 –

+0

申し訳ありませんが、私はインストールされていません。私の家のシステムでネット。だから私は疑いがありませんでした。 –

2

あなたは、それは文句を言わない中止(偽 "Login.aspxの"、)この Response.Redirectを のように変更することができます。

3

Response.Redirect(url) ThreadAbortExceptionのソリューションで述べたように:それはレスポンスにリダイレクトを送信した後、システムが 現在のWebページのスレッドの処理を中止しますので、あなたが Response.Redirect(url)に電話をかけるとき

ThreadAbortExceptionのがスローされ ストリーム。 Response.Redirect(url)は実際には内部でResponse.End() の呼び出しを行い、を呼び出すのはResponse.End()です。 はスレッドを終了するためにスタックをバブルアップします。まれに、Response.End()への の呼び出しは実際にはThread.Abort()を呼び出しませんが、 では代わりにHttpApplication.CompleteRequest()が呼び出されます。

または、Response.Redirect("~/Membership/UserRegistration.aspx");をTry/Catchブロックから移動するだけです。あなたが作成し、リダイレクトしたいすべてのキャッチエラーの場合

1

「後藤」次のようにしてみキャッチ外の運命:

Try 

     'do stuff 

    Catch ex As Exception 

     'logging 
     GoTo MyRedirection 

    End Try 

    'Prevent redirection in case of no errors 
    Exit Sub 

MyRedirection: 
    Response.Redirect("login.aspx", True) 

このどちらも、スレッドの流産を起こしたり、複数の漁獲量を必要とします。

関連する問題