为什么IIS在RoleEntryPoint.OnStart返回之前接受请求?

时间:2011-06-15 10:00:07

标签: windows iis azure cloud azure-web-roles

我正在使用Compute Emulator上的Azure示例from here,我发现如果我在继承自OnStart()的类中使RoleEntryPoint相当慢,则返回.aspx页面中的。即使在OnStart()返回之前,Web角色也会接受HTTP请求。

我发现它相当令人困惑 - 为什么IIS会接受对尚未启动的角色的请求?

1 个答案:

答案 0 :(得分:7)

模拟器不会100%模拟负载均衡器。对于云,当您的角色位于OnStart()时,您将被报告为LB忙,并且不会将流量路由到它。一旦从OnStart()返回true,它将花费几秒钟左右,但只有这样,LB才会开始路由到它。您可以通过跟踪OnStart()并在其中放置一个大的Sleep()来自行测试。您将无法访问您的实例(通过非延迟端口)。

您当然可以要求LB忽略就绪状态,即使在忙碌时它也会路由 - 这是通过在端点上指定ignoreRoleInstanceStatus =“true”来完成的。