我正在使用 Azure 示例 from here在计算模拟器上,我发现如果我在从 RoleEntryPoint
继承的类中创建 OnStart()
,则返回 Web 角色中的 .aspx 页面接受 HTTP 请求之前会相当慢OnStart()
返回。
我觉得这很令人困惑 - 为什么 IIS 会接受对尚未启动的角色的请求?
最佳答案
模拟器并未 100% 模拟负载均衡器。对于云,当您的角色位于 OnStart() 中时,您将向负载均衡器报告为“忙碌”,并且不会将任何流量路由到它。一旦您从 OnStart() 返回 true,将需要几秒钟左右的时间,但只有那时 LB 才会开始路由到它。您可以通过跟踪 OnStart() 并在其中放置一个大的 Sleep() 来自行测试。您将无法访问您的实例(通过非延迟端口)。
您当然可以要求负载均衡器忽略“就绪”状态,即使在繁忙时它也会进行路由 - 这是通过在端点上指定ignoreRoleInstanceStatus =“true”来完成的。
关于windows - 为什么 IIS 在 RoleEntryPoint.OnStart 返回之前接受请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355988/