昨日投稿した質問によると、当社の Web サイトの DNS 構造は、文字通り 2 つの運用サーバー間で行ったり来たりするラウンド ロビン DNS に変更されました。web.config
両方の製品サーバーには次のものがあります。
<sessionState mode="SQLServer" ... >
同じ共有DBを指す- 2 つの間で一貫している各サーバー上の A
machineKey
(これが昨日の私の投稿の主なポイントでした)。 - [更新
<forms domain=".mydomain.com" ... >
]タグ内の同じドメイン
サイトでログイン機能を使用すると、ログインは実際に、ユーザーを認証する 3 番目の Web サイトに対して Web サービス要求を行います。結果の応答がログインに成功したことを示している場合は、次を使用FormsAuthentication
してユーザーをログインさせます。
FormsAuthentication.SetAuthCookie(strUserID, true);
私たちの問題は、ログインしているページとログインしていないページがあることです。これは、2 つの本番サーバー間でセッションを共有するための最終ステップを完了していないことを示しているのでしょうか?それとも、SQL サーバー セッション DB が破損している可能性がありますか?
前もって感謝します
更新: ユーザーがログインしているかどうかを判断するコードは非常に基本的です。
HttpContext.Current.User.Identity.IsAuthenticated
更新 2 :
prod1.mysite.com (または prod2.mysite.com) にアクセスすると Cookie が呼び出され"ASP.NET_SessionId"
ますが、ライブ パブリック URL www.mysite.com にアクセスすると、この Cookie は取得されません。これは問題の一部ですか?
解決策:
ここで行ったことはすべて正しく、Akamai を使用するライブ サイトは、Akamai のキャッシュ構成により、さまざまな状態でキャッシュされていたことがわかりました。ログイン状態をサーバー間で共有することは確認済みです。