4

私はこれで何ヶ月も忙しいです。

現在、1 つの Web サイトに対して 2 つのサーバーを使用しています。ラウンドロビンDNSを使用すると、最初はすべてが機能することがわかりました(変更されたWebサイトのIPを確認しましたが、セッションを続行できます)が、しばらくするとセッションが失われ、フォーム認証Cookieを読み取れないようです廃棄されています。(仮定)しかし、これは常に起こるわけではありません。たまにしか。

私はiis7共有構成を使用しています。マシンキーを設定し、サーバーの1つを指すstateserverを使用しています。両方のサーバーでstateserverが機能することを確認しました。

IIS アプリケーション パスについて読んだことがありますが、それが何を意味するのかよくわかりません。Web アプリケーションのパスですか、それとも IIS がインストールされているパスですか? どちらの場合も同じです。

誰にもアイデアはありますか?

4

2 に答える 2

3

同じ問題に直面している人のために、私はこれに自分で答えます。すべてが正しくセットアップされましたが、マシン キーは system.web の下の web.config にあるはずです。何らかの理由で iis 7 経由でキーを生成できませんでした。オンライン ツールで生成しました: http://aspnetresources.com/tools/machineKey

したがって、負荷分散を行い、iis7 で複数のサーバーをセットアップするには、次のことを行う必要があります。

  • stateserver out-proc (stateserver または sql server) を使用し、すべてのサーバーがその stateserver を指すようにします (例: stateConnectionString="tcpip=server1:42424")。
  • iis 共有構成を使用して、すべてのサーバーが applicationhost.config が存在する共有を指すようにします。
  • マシン キーを生成します (iis 経由ではなく、オンライン ツールを使用してください)。
  • NLB (またはラウンド ロビン DNS) をセットアップし、ログイン時にクライアントの dns をフラッシュしてテストし、セッションが失われないかどうかを確認します。

これが誰かに役立つことを願っています。

于 2012-09-09T09:33:20.363 に答える
0

また、マシン キーは .NET バージョンに固有です。現在のバージョンを確認するには: IIS コンソールのサーバー レベルで、[操作] ウィンドウの [.NET Framework バージョンの変更] をクリックします。

于 2012-11-02T20:18:05.460 に答える