0

ポート 80 で 2 つの HTTP バインディングを使用する IIS 7 で ASP.NET アプリケーションをセットアップしており、それぞれが異なる IP アドレスを持っています。

この Web サーバーはロード バランサーの背後にあり、いずれかの IP アドレスを介してトラフィックを Web サーバーに転送できます (状況によっては重要ではありません)。

アプリケーションがロード バランサーによって使用されていた IP を検出する方法はありますか? (ロード バランサーがこれをオーバーライドすると仮定して) リクエストの REMOTE_ADDR サーバー変数を介して単純に利用できますか?

F5ロードバランサーが役立つと思います!

4

2 に答える 2

1

私の場合、答えは LOCAL_ADDR 変数を使用することでした。これは、リクエストが入ったサーバーアドレス、つまりロードバランサーを表すためです。

サーバー変数に関する優れた情報

乾杯

于 2013-07-19T07:08:55.843 に答える
0

これにより、関連するすべてのデータが表示されます: ( http://msdn.microsoft.com/en-us/library/system.web.httprequest.servervariables(v=vs.90).aspxから)

int loop1, loop2;
NameValueCollection coll;

// Load ServerVariable collection into NameValueCollection object.
coll=Request.ServerVariables; 
// Get names of all keys into a string array. 
String[] arr1 = coll.AllKeys; 
for (loop1 = 0; loop1 < arr1.Length; loop1++) 
{
   Response.Write("Key: " + arr1[loop1] + "<br>");
   String[] arr2=coll.GetValues(arr1[loop1]);
   for (loop2 = 0; loop2 < arr2.Length; loop2++) {
      Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");
   }
}

この中に、クライアントを参照する REMOTE_ADDR と、IIS ホストを参照する SERVER_PORT があります。

于 2013-06-12T20:45:26.320 に答える