2

マルチインスタンスWebRoleを に展開する場合Windows Azure Emulator、エミュレータは WebRole の複数の IIS Express インスタンスを実行しており、それぞれが次のように予約されたローカル IP で実行されています。

 127.255.0.1
 127.255.0.2
 127.255.0.3

問題は、実際に Azure にデプロイされているかのように WebRole にアクセスしたいということですSession State。インスタンス間で永続化されていることを確認する必要があります。

mySession Idは Cookie に保存されるため、別のインスタンスに接続するたびに、リクエストに Cookie を手動で「挿入」して、セッション データを確認する必要があります (ブラウザは次のインスタンスの IP を別のドメインと見なすため)。

hostnameこれらの IP の 1 つをランダムに指す (Windows 7 マシンで) を使用する方法はありますか?

4

1 に答える 1

1

どうやら、エミュレーターインスタンス間ですべてのリクエストを負荷分散します。

クラウド プロジェクトで [デバッグ] をクリックすると、仮想ロード バランサーの IP (まだ取得していない場合は通常 127.0.0.1:80) を持つ Web ページが開きます。

それでも、そもそも私を誤解させたことが2つありました。

  • 1.それぞれが独自のバインドを持つ複数の IIS Express インスタンスのリスト (画像が添付されています)。

ここに画像の説明を入力

  • 2.暗黙の親和性:

    Web アプリケーションにインスタンス ID を出力させ、常に同じインスタンス ID を取得し続けました。その理由は、(おそらく cookie 比較を使用して) エミュレーターが強制するアフィニティです。

結論:

手動で負荷分散したり、アフィニティを自分で制御したりしたい場合は、IIS Server Farming(私が最終的に行ったように) 機能を利用して負荷分散をエミュレートできます。

(ある種の「リバース プロキシ」としての Apache/Nginx も良いオプションですが、既にインストールされて使用されている製品に固執することを好みました)。

于 2013-04-11T11:11:16.600 に答える