0

Web アプリケーションにApplication Request Routing を使用して HTTP 負荷分散を実装しました。1 つのロード バランサー サーバーと 2 つのアプリケーション サーバー、つまり SERVER1 と SERVER2 があります。ロード バランサ サーバーのサーバー ファームでクライアント アフィニティを構成しました。

しかし問題は、同じクライアントからのリクエストが異なるサーバーに送信されることです。この動作は、サーバー ファームの [監視と管理] セクションで確認しました。また、クライアントで「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが発生します。

これは、クライアントからの最初の要求が SERVER1 にヒットしたときに、SERVER1 のセッションでオブジェクトが作成されたためです。セッションで作成されたオブジェクトにアクセスしようとしている同じクライアントからの 2 番目の要求。しかし、リクエストは SERVER1 ではなくロード バランサーから SERVER2 にヒットしています。SERVER2 クライアントにセッションが存在しないため、このエラーが発生します。

クライアント アフィニティ構成は、クライアントからの後続のすべての要求が、最初の要求を処理した同じサーバーに送信されるというこの問題を処理するためのもので あることを理解しています。

しかし、私の場合、この機能は機能していません。これに対する解決策は非常に役立ちます。

4

2 に答える 2

2

古いトレッドですが、誰かに役立つかもしれません。

それは ie の問題または「Internet Explorer を使用するときに予想される動作」のようです: サイト名に少なくとも 1 つの「.」が含まれていない場合 その場合、ARR クライアント アフィニティ Cookie は ARR に送り返されないため、ARR は新しい Cookie を生成します。

したがって、有効な回避策は、「.」を含む任意のエイリアスです。(ドット) Nagendra が servername.domainname に言及したように

http://forums.iis.net/t/1178295.aspx?ARR+2+5+Client+Affinity+Not+Working

于 2015-06-15T17:15:52.530 に答える
2

私は解決策を見つけました!アプリケーションは Firefox ブラウザでは正常に動作し、IE と Chrome では動作しませんでした。ARRは Cookie を使用してClient Affinityを有効にします。Cookie 名は、クライアントに Cookie を設定するために使用されます。つまり、クライアント アフィニティが正しく機能するためには、クライアントは Cookie を受け入れる必要があります。デフォルトの Cookie 名はARRAffinityです。

アプリケーションを参照するには、url servername/appname を使用していました。IE および Chrome からアプリケーションを参照しているときに、ARRAffinity Cookie が作成されませんでした。servername.domainname/appnameを使用してサイトを参照すると、Cookie が作成され、アプリケーションが正常に動作していました。

于 2013-09-25T10:07:47.093 に答える