web.config:
<customErrors mode="On" defaultRedirect="~/Foo.aspx" />
Foo.aspx.csが実行されているときに、キャッチされなかった例外がFoo.aspxに送信されたことをどのように知ることができますか?
web.config:
<customErrors mode="On" defaultRedirect="~/Foo.aspx" />
Foo.aspx.csが実行されているときに、キャッチされなかった例外がFoo.aspxに送信されたことをどのように知ることができますか?
を確認し、ページが呼び出された理由をServer.GetLastError()
確認するには、 も確認してください。Response.StatusCode
customErrors
ページに要素を設定するweb.config
とdefautRedirect
、不明な状態が発生した場合にのみ呼び出されます。つまり、たとえば、ステータス コード 404 および 403 のカスタム ページを指定するfoo.aspx
と、別のステータスが表示された場合にのみページが呼び出されます。
コード:
if (!string.IsNullOrEmpty(Request["aspxerrorpath"])) {
....
}
私はもっと良いものを望んでいますか?
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 がそのデータを操作できるようにします。
最終的な目標はわかりませんが、例外に基づいて表示されるエラーメッセージをカスタマイズしようとしている場合は、この方法で処理できます。