3

是否可以定义 Azure 角色的启动顺序?

我有一个缓存工作者角色,我显然将其用于缓存。我还将它用作我的会话状态提供程序。

当我在 Visual Studio 中启动我的解决方案并在浏览器中打开时,我收到一条错误消息,指出缓存不存在。如果我提出另一个请求,它工作正常。这似乎是因为 web 角色在它尝试使用的缓存角色之前开始了一小部分。

这在实时环境中并不是真正的问题,因为 Azure 在所有角色都准备好之前不会将请求路由到应用程序,但是当我在本地运行时它有点烦人。

谢谢

4

1 回答 1

4

您不能指定角色启动顺序。但是,您可以将 Web 角色实例保留在负载均衡器之外,直到您确定环境已启动并充分运行。

在您的OnStart()中,您可以放置​​一些尝试从缓存中获取某些内容的代码(如果 Web 角色实例在缓存角色之前出现,这可能会失败)。或者也许 ping 缓存角色实例(我将把它留给您,以确定查看缓存角色实例是否启动的最佳方式)。只需定期重试,直到成功,然后从OnStart(). 此时,负载均衡器将开始将流量引导到角色实例,您应该处于良好状态。

注意:当您的 Web 角色实例不可用时,您会看到一个 http 错误,因为该站点在启动期间将暂时不可用,但您不应该看到缓存错误消息。

更多细节OnStart这里

于 2013-06-04T10:58:53.243 回答