1

すべてがローカルで正常に機能していますが、アプリケーションをIIS 6サーバーに展開すると、すべてのセッション変数がnullになります。

アプリケーションでは、たとえば次のようにセッション変数を使用しています。

System.Web.HttpContext.Current.Session["test"] = "test123";

var test = System.Web.HttpContext.Current.Session["test"];

私のweb.configには、次の要素があります。 <sessionState mode="InProc" timeout="20" />

IISのアプリケーション構成オプションで、[セッション状態を有効にする]オプションがチェックされ、セッションタイムアウトが20分に設定されています。

このアプリケーションのセッションを有効にする方法を知っている人はいますか?

ありがとう

4

1 に答える 1

1

私が思いつく最良の説明は次のとおりです。

  1. コードのどこかにSession.Abandon()orがありますSession.Clear()

  2. アプリケーション ドメインを強制終了し、それを使用してセッションを取得しているアプリケーションで、かなり重大な例外がスローされています。Windows イベント ログ (アプリケーションおよびシステム) をチェックして、未処理のワーカー プロセスまたは ASP.NET 例外がスローされていないかどうかを確認します。

  3. アプリのアプリケーション プール設定が変更されているため、プールが予想よりも早くリサイクルされる可能性があります。

  4. サーバーの前にロードバランサーまたは何らかのプロキシがあり、セッション Cookie が壊れています。または、セットアップが負荷分散環境の場合、スティッキー セッションはロード バランサーで構成されていません。

SQL ステート マネージャーなどのアウト プロセス セッション マネージャーを使用してみてください。

http://msdn.microsoft.com/en-us/library/ms229862(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/ms178581

于 2012-08-06T23:57:16.590 に答える