1

私はasp.netとweb.configに書かれたWebアプリケーションを持っています

<customErrors mode="On" defaultRedirect="error.aspx" />

ページがあるとしますabcd.aspx。そして、私はブラウザでリクエストを送信しましたabcd.aspx?p1=cvb&p2=dfg

エラーが発生した場合は、にリダイレクトしますが、error.aspx?aspxerrorpath=abcd.aspx. 通過p1したいp2だけでなく. すなわち error.aspx?aspxerrorpath=abcd.aspx&p1=cvb&p2=dfg

どうやってやるの?

4

2 に答える 2

0

できません。これは内部関数呼び出しの一部であり、変更できません。これは、リダイレクトを作成する関数でありthis.Request.Path、パラメーターを含む完全な URL ではありません。

internal bool RedirectToErrorPage(string url, CustomErrorsRedirectMode redirectMode)
{
    try
    {
        if (string.IsNullOrEmpty(url))
        {
            return false;
        }
        if (this._headersWritten)
        {
            return false;
        }
        if (this.Request.QueryString["aspxerrorpath"] != null)
        {
            return false;
        }
        if (redirectMode == CustomErrorsRedirectMode.ResponseRewrite)
        {
            this.Context.Server.Execute(url);
        }
        else
        {
            if (url.IndexOf('?') < 0)
            {
                url = url + "?aspxerrorpath=" + HttpEncoderUtility.UrlEncodeSpaces(this.Request.Path);
            }
            this.Redirect(url, false);
        }
    }
    catch
    {
        return false;
    }
    return true;
}

もう少し言うと。
そのエラー ページに到達すると、コントロールを失ったことになります。つまり、プログラミング エラー、または未処理の例外があることを意味します。そのエラーは EventViewer に記録されますがApplication_Error、global.asax を使用して個人的にログを記録し、ログ ファイルに書き込むこともできます。

相対:
asp.netアプリケーションで未処理の例外をキャッチする方法は?
ASP.NET アプリケーションで "一般的なエラー" ページを作成して、そのページ自体を提供するときにトリガーされたエラーを処理するにはどうすればよいですか?

于 2013-03-17T23:51:09.393 に答える
0

asp.net のエラー ログについては、 ELMAHを調べることをお勧めします。

于 2013-03-17T22:32:31.023 に答える