C# 为什么Windows Azure在Thread.Sleep()时不进行负载平衡?

C# 为什么Windows Azure在Thread.Sleep()时不进行负载平衡?,c#,azure,C#,Azure,我正在玩WindowsAzure模拟器,它运行一个MVC网站,带有一个控制器方法,在返回之前调用Thread.Sleep(5000) 在客户机上,我运行一个循环,每1000毫秒向控制器发送一个POST请求,从服务器接收带有roleenEnvironment.CurrentRoleInstance.Id的回复,并将其打印在屏幕上 我有4个MVC工作者角色实例正在运行 我知道connection:keep alive HTTP头可以防止浏览器向其他实例发出请求,因为现有连接已打开 但是,即使在多个浏

我正在玩WindowsAzure模拟器,它运行一个MVC网站,带有一个控制器方法,在返回之前调用Thread.Sleep(5000)

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

我有4个MVC工作者角色实例正在运行

我知道connection:keep alive HTTP头可以防止浏览器向其他实例发出请求,因为现有连接已打开

但是,即使在多个浏览器窗口中加载我的站点,它在等待Thread.Sleep()时仍保持挂起状态,然后(大多数情况下)继续从同一实例获得回复


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

您提到过使用emulator,它处理负载平衡的方式与Azure真正的负载平衡器不同。有关差异的详细信息,请参阅。我不知道你的案子到底发生了什么,但是。。。我建议你在Azure中尝试一下,看看你是否达到了预期的行为