1

Azure Traffic Managerを使用して、異なる地域の2台のサーバの負荷を分散しています。私は私のセッション状態のための単一の店またはredisキャッシュが必要と思った。しかし、テストしているうちに、私がどちらのサーバをテストしてサーバ間に戻ってもログインしているように見えます。私はログアウトし、もう一方はログアウトしています。私が保存している唯一のセッション状態はユーザープロファイルですが、見つからなければサーバーに移動して取得します。以下は私のフォームの設定です。私は本当にredisキャッシュのようなものが必要ですか?Azure Traffic Managerとセッション状態ストアによるロードバランシングが必要ですか?

<sessionState timeout="2880" mode="InProc" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="/login" path="/" protection="All" domain=".example.com" timeout="2880" slidingExpiration="true" name="_EXPOSURE_" /> 
    </authentication> 

答えて

2

あなたのアプリの設計方法は決めることができますが、トラフィックマネージャはセッション状態とはまったく関係ありません。選択したルーティング方法(距離/ラウンドロビン/プライマリ+フェールオーバー)に基づいて、複数のWebエンドポイントにユーザトラフィックをルーティングします。

上記のセッション状態スニペットはInProcを表します。つまり、セッションデータは特定のVM上のWebサーバー内で維持されます。 ではなく、がVMの外部で共有されています。セッション状態を複数のVM(またはWebアプリケーション)で共有したい場合は、セッション状態をWebサーバーの外部に保存する必要があります。

Redis、SQLデータベースなどを使用しているかどうかは自由です。

+0

マシンキーが同じで、ドメイン名がCookieのワイルドカードであるため、フォームセッションが動作していると仮定します。 –

関連する問題