5

私たちのオペレーターは、私たちのWebポータルにラウンドロビンロードバランサーを実装しましたが、それが原因で、私が理解できない問題が発生しているようです。

現在使用しているサーバーを特定でき、サイト内を移動してもサーバーAにとどまります。5分間そのままにして別のページを試すと、サーバーBにプッシュされ、ログアウトして、ログインページ。

machine.configのMachineKeyが両方のサーバーで同じであることを確認するためにそれらを取得し、セッションが使用されていないことをローカルでテストしました-セッションをローカルで完全にオフにすることができ、それでも機能します。両方のサーバーでASPXAUTHCookieを作成していることを確認したので、両方のサーバーで認証済みとして分類する必要がありますが、サーバーを変更するたびに認証を失い続けます。

ログアウトの原因について何か考えはありますか?ASPXAUTHがどのように機能するかについての私の誤解だと思います。

4

2 に答える 2

2

セッションは、フォーム認証とは別に処理されます。これについての良い説明がありますhere

負荷分散された環境でフォーム認証が失敗する最も一般的な理由は、MachineKey 要素の同期の欠如です。MachineKey が同期されていることを確認するためにサーバー オペレーターがいると述べましたが、何らかの方法でこれを自分で確認しましたか? これはすべての Web サーバーに当てはまりますか? いくつかの商用 Web ホストとの以前の取引から、(残念ながら) 彼らの保証を額面どおりに受け取るのは難しいことがわかりました。

もう 1 つの確認事項は、FormsAuthentication 構成 (タイムアウト、パス、名前など) がすべてのホストで同じであるかどうかです。

パッチ レベルはすべてのホストで同じですか? ここに記載されている互換性スイッチが状況に適用できるかどうかを確認することをお勧めします。

ホスティングの設定が正しいと仮定すると、何らかの条件が満たされない場合にログアウトする初期化コードがページにあるのではないでしょうか?

サーバー ログを調べて、失敗したページ リクエストに関連する一連の HTTP リクエストを追跡してみてください。それがヒントになるかもしれません。

編集: フォーム認証の問題をトラブルシューティングするためのこのガイドは詳細であり、非常に役立ちます:フォーム認証のトラブルシューティング

于 2012-12-05T19:39:26.953 に答える
0

Cookie に依存する他のアプリケーション機能を確認します。サーバー B の Web サーバーは、サーバー A から送信された Cookie を認識しません。認証の一部が Cookie の設定に依存している場合、問題が発生する可能性があります。

Cookie に使用されるドメインが、負荷分散されたすべてのサーバーで同じであることはすでに確認されていると思いますが、それについて言及したいと思います。ドメインに互換性がない場合、ブラウザは単純に Cookie をサーバーに送信しません。

于 2012-12-05T19:57:47.080 に答える