-1

エラー ページを含む Web サイトの各ページは、マスター ページから派生します。マスター ページでは、セッション変数にアクセスしています。例外を取得すると、Page_Error または Application_Error イベントで処理します。そこから Server.Transfer を使用してエラー ページにリダイレクトすると、Error.aspx のマスター ページで以下の例外が発生します。Response.Redirect を使用すると、正しく動作します。

Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.

Server.Transfer の問題を詳細に説明してください。

4

1 に答える 1

0

アプリケーションが例外をスローすると、Application_Error イベントで処理しています。

protected void Application_Error(object sender, EventArgs e)
    {
        Exception ex = HttpContext.Current.Server.GetLastError();
        if (ex.Message == "File does not exist." && HttpContext.Current.Session == null)
        {
            if (((System.Web.HttpException)(ex)).GetHttpCode() == 404)
            {
                LogtheException();
            }
        }
        else
        {
            Log the Exception(Session["uname"].ToString());
            Server.Transfer(UrlMaker.ToError(ex.Message.ToString()));
        }
    }

HttpContext.Current.Server.GetLastError(); の使用 私は最後の例外を取得しています。「ファイルが存在しない」以外の例外があれば。セッション変数にアクセスしています。

最初にアプリケーションに関連する例外をスローし、次に css/image ファイル パスが正しくない場合、すぐに「ファイルが存在しません」をスローします。例外。例外は、「ファイルが存在しません」のセッションを適切に処理していないためです。場合。

Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the <configuration>\<system.web>\<httpModules> section in the application configuration.

通常、Css とイメージのリクエストはセッションにアクセスする必要がないことを知りました。そのため、asp はセッションをメモリにロードせず、「ファイルが存在しません」という例外でセッションにアクセスできません。

于 2012-04-27T12:32:34.637 に答える