0

我在 IIS 7 中有一个 ASP.NET 应用程序设置,它在端口 80 上使用两个 HTTP 绑定,每个绑定都有不同的 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 回答