是否可以定义 Azure 角色的启动顺序?
我有一个缓存工作者角色,我显然将其用于缓存。我还将它用作我的会话状态提供程序。
当我在 Visual Studio 中启动我的解决方案并在浏览器中打开时,我收到一条错误消息,指出缓存不存在。如果我提出另一个请求,它工作正常。这似乎是因为 web 角色在它尝试使用的缓存角色之前开始了一小部分。
这在实时环境中并不是真正的问题,因为 Azure 在所有角色都准备好之前不会将请求路由到应用程序,但是当我在本地运行时它有点烦人。
谢谢
是否可以定义 Azure 角色的启动顺序?
我有一个缓存工作者角色,我显然将其用于缓存。我还将它用作我的会话状态提供程序。
当我在 Visual Studio 中启动我的解决方案并在浏览器中打开时,我收到一条错误消息,指出缓存不存在。如果我提出另一个请求,它工作正常。这似乎是因为 web 角色在它尝试使用的缓存角色之前开始了一小部分。
这在实时环境中并不是真正的问题,因为 Azure 在所有角色都准备好之前不会将请求路由到应用程序,但是当我在本地运行时它有点烦人。
谢谢
您不能指定角色启动顺序。但是,您可以将 Web 角色实例保留在负载均衡器之外,直到您确定环境已启动并充分运行。
在您的OnStart()
中,您可以放置一些尝试从缓存中获取某些内容的代码(如果 Web 角色实例在缓存角色之前出现,这可能会失败)。或者也许 ping 缓存角色实例(我将把它留给您,以确定查看缓存角色实例是否启动的最佳方式)。只需定期重试,直到成功,然后从OnStart()
. 此时,负载均衡器将开始将流量引导到角色实例,您应该处于良好状态。
注意:当您的 Web 角色实例不可用时,您会看到一个 http 错误,因为该站点在启动期间将暂时不可用,但您不应该看到缓存错误消息。
更多细节OnStart
:这里。