0

セッションが引き続き失われるライブ サーバーでホストされている Web サイトがあります。

アプリケーションの開始時と終了時、セッションの開始時と終了時、およびアプリケーション エラーがあるかどうかを確認するために、global.asax にログを追加しました。

私のウェブサイトに移動すると、ログイン後にアプリケーションが開始され、セッションが開始され、電子メールとユーザー ID が保存されます。その後、サイトを1分ほどナビゲートしただけで、自動ログアウトしました。自動ログアウトは、セッションが null であり、それを放棄した結果です。

以下は、上記のテストのログです。

[11:4:57:802]   Application has started
[11:4:58:872]   Session has started
[11:4:58:890]   Set Email Sessions
[11:4:59:61]   Set PracticeId and PractitionerId Sessions
[11:6:49:838]   Application has started
[11:6:5:391]   Session has ended
[11:6:5:445]   Application has ended
[11:6:8:208]   Session has started
[11:6:8:338]   Abandon Session
[11:6:8:343]   Session has ended

テストしましたが、これは特定のリンクの問題ではなく、ローカル ホストでサイトを実行している場合は発生しません。アプリケーションの開始が開始され、セッションがnullに設定されると想定されるため、セッションが失われます。

application_start がランダムにトリガーされる原因は何ですか?

4

1 に答える 1

0

IIS AppPool には、アプリケーションのリサイクルを制御する構成オプションがあります。

例: 構成可能な一定期間アクティビティがなく、メモリ使用量のしきい値を超えた場合、毎日特定の時間に...

AppPool 構成を見てください。

自動ログアウトは、セッションが null であり、それを放棄した結果です。

自動ログアウトに関しては、フォーム認証を使用している場合、セッションの有効期限が切れたという理由だけで自動ログアウトする必要はありません。有効期限がセッションの有効期限とは完全に独立しているフォーム認証 Cookie は引き続き保持されます。

また、適切に設計されたアプリケーションでは、永続ストレージ (通常はデータベース) からロードすることで、Session にあったものを簡単に再生成できます。

于 2013-10-11T10:17:39.313 に答える