0

ユーザーのログイン情報を記録するセッションがありますが、アプリケーションが終了したために失われます。

ローカルホストからコードを実行しても問題はありませんが、サイトをライブで起動したので、数分でセッションがすぐに失われます。

私は、Golbal.asax ファイルをログに記録し、セッションの開始時と終了時、アプリケーションの開始時と終了時、およびアプリケーション エラーが発生したかどうかを記録することにしました。

ユーザーがWebサイトをナビゲートすると、セッションがnullかどうかがチェックされ、セッションがnullでない場合は、そのページの非表示フィールドを登録してセッション値を使用しますが、セッションがnullの場合はそれらを破棄してログインページにリダイレクトします。

これが私のログが私に示したものです:

[11:52:25]   Application has started 
[11:52:25]   Session has started 
[11:52:35]   Use session 
[11:52:45]   Use session 
[11:52:54]   Use session 
[11:52:59]   Use session 
[11:53:5 ]   Use session 
[11:53:10]   Use session 
[11:53:15]   Use session 
[11:53:18]   Session has ended 
[11:53:18]   Application has ended 
[11:53:22]   Application has started 
[11:53:23]   Session has started 
[11:53:23]   Abandon Session 
[11:53:23]   Session has ended 
[11:53:23]   Session has started

同じハイパーリンクを 7 回クリックしてサイト内を移動し、基本的には表示中のページを更新するだけでしたが、不明な理由でセッションが失われ、アプリケーションが終了しました。ログからわかるように、これはすべて 1 分以内でした。

ナビゲーション リンクがクリックされると、これはセッションをチェックするコードです。

    protected override void OnInit(EventArgs e)
    {
        LogClass Log = new LogClass();

        if (this.Session != null && this.Session.Count > 0)
        {
            Log.Logger("Use session");

            string email = (string)this.Session["Email"];
            int practiceId = (int)this.Session["PracticeId"];
            int practitionerId = (int)this.Session["PractitionerId"];

            this.ClientScript.RegisterHiddenField("loggedInUserName", email);
            this.ClientScript.RegisterHiddenField("practiceId", practiceId.ToString());
            this.ClientScript.RegisterHiddenField("practitionerId", practitionerId.ToString());
        }
        else
        {
            Log.Logger("Abandon Session");
            this.Session.Abandon();
            Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
            Response.Redirect("~/Default.aspx");  
        }

        base.OnInit(e);
    }

セッションがすぐに失われる原因は何ですか? また、ローカル ホストの問題ではなく、ライブ ホスト時の問題だけが発生するのはなぜですか?

アプリケーションエラーがログに記録されていないため、アプリケーションが終了する原因は何ですか?

4

0 に答える 0