0

web.config:

<customErrors mode="On" defaultRedirect="~/Foo.aspx" /> 

Foo.aspx.csが実行されているときに、キャッチされなかった例外がFoo.aspxに送信されたことをどのように知ることができますか?

4

3 に答える 3

2

を確認し、ページが呼び出された理由をServer.GetLastError()確認するには、 も確認してください。Response.StatusCode

customErrorsページに要素を設定するweb.configdefautRedirect、不明な状態が発生した場合にのみ呼び出されます。つまり、たとえば、ステータス コード 404 および 403 のカスタム ページを指定するfoo.aspxと、別のステータスが表示された場合にのみページが呼び出されます。

于 2010-03-15T20:38:00.833 に答える
0

コード:

if (!string.IsNullOrEmpty(Request["aspxerrorpath"])) {
    ....
}

私はもっ​​と良いものを望んでいますか?

于 2010-03-15T20:26:47.027 に答える
0
void Application_Error(object sender, EventArgs e)
{
    HttpContext ctx = HttpContext.Current;
    Exception exception = ctx.Server.GetLastError();
    ctx.Server.ClearError();
    ctx.Server.Transfer("Foo.aspx?ERROR" + exception.Message);

}

このメソッドは、Foo.aspx に移動する前に起動されるため、リダイレクトではなくエラーから来ていることがわかります。次に、QueryString 変数を URL に追加して、Foo.aspx がそのデータを操作できるようにします。

最終的な目標はわかりませんが、例外に基づいて表示されるエラーメッセージをカスタマイズしようとしている場合は、この方法で処理できます。

于 2010-03-15T20:29:49.003 に答える