私は Web ファーム サーバーに Web アプリケーション (mvc4 および .net4.5) を持っていますが、1 つのことが混乱しています。セッション ID がホワイトアウトの理由を大きく変更し、セッション状態に保存したすべてのユーザー データが失われます。しかし、ローカルマシンでは問題なく動作します。
私は私のウェブ設定でこの設定を使用します:
<sessionState mode="StateServer" customProvider="DefaultSessionProvider"
cookieName="abcd" timeout="120" >
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
私のマシンキーはこれです:
<machineKey compatibilityMode="Framework45"
validationKey="702C65CF39B1ED514AC4B92326C3A84B3D88990DDF784AA0895659B528ED95F8CA0A9CD1AF5ED92A2599362684CB8D204AC30D07E6BF0CF65194A5129"
decryptionKey="1C49E6BA2F9423387FBC91389A0C5C8D06B61875BCE4916A40474ED"
validation="SHA1" decryption="AES" />
私のセッション タイムアウトは 120 分で、これが Web アプリケーションで発生する理由がわかりません。ログ クラスを使用して、Web アプリケーションで何が起こっているかを確認します。
たとえば、ユーザーが別のエリアに移動したとき、またはユーザーがオンライン銀行支払いでお金を支払いたいとき、銀行ページにリダイレクトし、ユーザーが同じウィンドウで銀行から自分のサイトにリダイレクトしたとき (これを行うために別のタブまたはウィンドウを開きません)セッション ID が変更されました。
セッションにユーザーIDなどの小さなデータを保存します。
私はこの構文を使用してセッションを保存します:
HttpContext.Current.Session[System.Web.HttpContext.Current.Session.SessionID] = "abc"
次の構文で読み取ります。
var myval=HttpContext.Current.Session[System.Web.HttpContext.Current.Session.SessionID]
そのサーバーは私の設定を使用せず、それ自体が機能するようです。ファーム サーバーに何らかの構成が設定されている可能性があることを知りたいのですが、その場合、構成が使用されず、それ自体で機能しますか?