2010-12-02 11 views
1

イントラネットには、セッション情報に値を入れてユーザーを識別するカスタムメンバーシップシステム(aspメンバーシップではない)があります。イントラネットは常に進化しているので、毎日ライブサーバーの変更を何度も公開する必要があります。私が行うたびに、ログインしているユーザーは終了し、再度ログインする必要があります。これは私がここで誰かを退屈しない様々な問題を引き起こします。Webルートの変更時にセッション終了を防止する

私の質問 - これを防ぐにはどうにかしているのですか、それともそれだけで生活する必要がありますか?最後の3時間ゴーグルを費やしていて、解決策を見つけることができません。

ありがとうございます。

答えて

3

を試してみてください。 "InProc"を使用しています。これは、セッションがアプリケーションと同じアプリケーション領域に格納されていることを意味します。 "StateServer"または "SQLServer"を使用することはできますが、アプリケーションの変更が必要になります(StateServerはIISサーバーで別のサービスを実行する必要があり、SQLServerには情報を格納するデータベースが必要です)。セッションに格納するものはすべてシリアライズ可能である必要があります。

Here is the information on MSDN regarding Session Mode

+0

ありがとうございます!それは理にかなっている。信じられない1:自分自身でそれを見つけることができませんでした2:私は "ゴーグル"を書いた。人々がそれをするとき、私はそれが嫌いです。 – LiverpoolsNumber9

0

あなたの質問は、ユーザー(セッション/システムのダウンタイムの損失など)に任意の混乱を招くことなく、24時間365日のサーバーを追いついについては、それは、次の手順を実行している場合:

  1. あなたがにアプリケーションを構成する必要がありますあなたがフェイルオーバ戦略ルート要求へ
  2. をこれらのサーバの1つに、動的に、あなたは今、ロードバランサ
  3. が必要になりますように複数のアプリケーションサーバーを設定する必要があり
  4. とき、DBにあなたのセッションを保存関連の次のバージョンを展開したいaseはアプリに生きる。サーバはS1とS2と答え、以下の手順に従います。 [4.1]ロードバランサの設定を変更して、リクエストをS1にルーティングしないようにします。 [4.2。] S1 にアプリをデプロイする[4.3。] S1を含むロードバランサの設定を変更し、今回はS2を除外します。 (これ以降のすべての要求は、S1とS2が接続されている共通DBからセッション情報を取得するS1を打つ) [4.4]必要に応じて上記の手順を繰り返します。

最も重要なことは、ライブ/プロダクションボックスで最初に行う前に、ステージング環境で上記の手順を常にテストすることです。

幸運を祈る!

関連する問題