在C#中以编程方式检查网络负载平衡(ELB)和IIS

时间:2012-03-06 09:03:32

标签: c# windows-server-2008 asp.net-4.0 nlb

我打算编写一个小程序,通过多个并行连接来检查IIS服务连接和统计信息。 IIS服务支持NLB服务(还有3种不同的服务)。所以我到目前为止所做的是:

  1. 创建一个返回当前IIS服务器名称的http处理程序。
  2. 在WinForms应用程序中创建小型HTTP客户端,向NLB发送请求。在此客户端中:通过WebClient对象发送的一系列100个并行请求正在发送到NLB服务。
  3. 结果:当我将请求发送到NLB时,始终单个IIS服务器响应。当我尝试将URI更改为IIS服务器时 - 每个服务器都根据自己的请求进行响应。现在,我认为这意味着NLB不会做它应该做的事情,因为它总是导航到同一个服务器(对于每次运行,单个服务器应答 - 它可以改变,但不能用于运行)。 / p>

    我提到的支票是否可以检查NLB? 如果没有,我如何通过Winforms应用程序检查它?

    提前致谢。

2 个答案:

答案 0 :(得分:1)

这是NLB的典型行为。它会尝试每次都给你相同的主机。您不希望每次都选择随机服务器。

通过检查IIS服务器日志,性能计数器或构建的监视例程,您将获得更多有用的信息。

答案 1 :(得分:1)

NLB管理器中有一个Affinity setting

将此设置从单个更改为无,并检查请求是否每次都转到不同的服务器。