1

Application_Error() で次のエラー処理を使用します。

    protected void Application_Error()
    {
        Exception exception = Server.GetLastError();
        Response.Clear();

        HttpException httpException = exception as HttpException;

        if (httpException != null)
        {
            string action;

            switch (httpException.GetHttpCode())
            {
                case 404:
                    // page not found
                    action = "HttpError404";
                    break;
                case 500:
                    // server error
                    action = "HttpError500";
                    break;
                default:
                    action = "General";
                    break;
            }

            // clear error on server
            Server.ClearError();

            Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message));
        }
    }

これを追加する前に、私のページは正常にレンダリングされました。これを追加したので、約 21 個のファイルが見つからないという例外が発生しています。私は最初、いくつかのルーティング値が間違っていると思っていました (ただし、ルートを試すまで実行されません)、それらをコメントアウトしました。同じことです。

最初のページの読み込みをステップ実行しましたが、ページ全体が一度にレンダリングされるため、これらがどこから来ているのかを追跡できず、スタックトレースは探しているものを提供しません:

System.Web.StaticFileHandler.GetFileInfo (文字列 virtualPathWithPathInfo、文字列 physicalPath、HttpResponse 応答)
で System.Web.StaticFileHandler.ProcessRequestInternal (HttpContext コンテキスト、文字列 overrideVirtualPath) で System.Web.DefaultHttpHandler.BeginProcessRequest (HttpContext コンテキスト、AsyncCallback コールバック、オブジェクト状態) ) System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() で System.Web.HttpApplication.ExecuteStep (IExecutionStep ステップ、ブール値 & completedSynchronously)

これは CSS とスクリプトが定義されている場所で発生しているのではないかと考えましたが、これらをコメントアウトしても問題は解決しませんでした。

どうすればこれを追跡できますか?

4

1 に答える 1

2

favicon.ico一部のブラウザが要求し、あなたが提供しなかったファイルであることに 5 ドル賭けます。エラー ハンドラー内Request.Urlで、デバッグ モードでプロパティを確認するだけで、要求された URL を確認できます。どのファイルが欠落しているかがわかります。また、エラー ハンドラの最後でリダイレクトする場合、呼び出しServer.ClearError();はあまり意味がありません。

于 2011-07-21T23:05:31.427 に答える