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

sha*_*oth 2 windows cloud iis azure azure-web-roles

我与Azure的样品打从这里上计算仿真和我发现,如果我OnStart()在我的继承类RoleEntryPoint,而慢于Web角色返回.aspx页面中接受甚至在HTTP请求OnStart()的回报.

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

dun*_*nry 7

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

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