WebMethod
からリダイレクトする必要があります。だから私はちょうど文字列としてページURLを返そうとしており、success
コールバックでリダイレクトされます。WebMethodでThreadAbortExceptionが正しくキャッチされていません
問題点リダイレクトする前に膨大な量のコードがあり、それは1つの集中化されたメソッド(前に同じ操作を実行するためにリダイレクトする前に呼び出されるメソッドのみ)で記述されます。リダイレクトでもその関数を呼び出す必要があります。
ここでは、わかりやすい集中機能を呼び出すことなく、ここに自分のコードを入れています。応答で
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string TestException()
{
try
{
System.Web.HttpContext.Current.Response.Redirect("Test.aspx");
return "No Exception";
}
catch(Exception ex)
{
return "Exception";
}
}
は私の代わりにcatchブロックのように「例外」を返すのでSystem.Threading.ThreadAbortException
とInternal Server Error (505)
を取得しています。私が代わりにすなわち「Excetion」を返すキャッチから文字列を返し、
int i = 0;
int j = 5/i;
また、例外を発生させますが、私にInternal Server Error (505)
を与えるものではありませんのようなものでResponse.Redirect
を置き換える場合
これは他の例外、すなわちの場合ではありませんブロック。それは他の例外とは異なるSystem.Threading.ThreadAbortException
を扱っているのはなぜ
私の質問は
- ですか?
- 私は
Centralized
関数で使用されるローディング関数とオプションパラメータのような別の関数を知っています。追加パラメータをチェックすることでリダイレクトの代わりに文字列を返すことができますが、webmethodやany集中化された機能に触れることなく、他の場所で機能させることができますか?
'Thread.ResetAbort'を使用した後、コンソールで' Authentication failed'エラーを返します。 – Imad
@Imad Trust me、 'HttpRedirect'を使うのは良い方法ではありません。私はあなたにそれをすることをお勧めします。 –
それは長らく同意した。まだ試してみたかった*。 – Imad