为什么Windows Azure在Thread.Sleep()时没有负载平衡?

时间:2013-11-29 01:16:13

标签: c# azure

我正在使用运行MVC网站的Windows Azure模拟器,其中一个控制器方法在返回之前调用Thread.Sleep(5000)。

在客户端上,我运行一个循环,每1000毫秒向控制器发送一个POST请求,从服务器接收带有RoleEnvironment.CurrentRoleInstance.Id的回复,并将其打印在屏幕上。

我有4个运行MVC辅助角色的实例。

我理解连接:keep-alive HTTP标头可以阻止浏览器向其他实例发出请求,因为现有连接已打开。

但是,即使在多个浏览器窗口中加载我的网站时,它仍然在等待Thread.Sleep()时挂起,然后(大多数时间)继续从相同的获得回复实例。

为什么Azure的负载均衡器不会将后续请求发送到非繁忙工作者角色实例?我是否需要手动将其标记为忙?

1 个答案:

答案 0 :(得分:0)

您提到使用模拟器,它不像Azure的实际负载均衡器那样处理负载均衡。有关差异的详细信息,请参阅this post。我不知道你的情况到底发生了什么,但是......我建议你在Azure中尝试一下,看看你是否得到了你期望的行为。