2015-06-27 68 views
4

通过阅读各种文档和博客,听起来像OnStart是您的角色开始接收流量之前初始化对象和事物所需的位置。 但是,我不清楚如果有一种情况可以使用同一个worker角色类的实例多次调用OnStart?Azure Worker角色 - 使用OnStart()与构造函数进行一次初始化

例如我有一个注入容器和一个数据库连接,应该只创建一次。我需要确保角色不能停止并重新开始,将所有当前对象留在内存中。在这种情况下,使用worker角色构造函数初始化对象似乎会更好。

回答

5

OnStart()RoleEntryPoint类的成员,以及需要重写的方法)仅在角色实例生命周期中调用一次。返回true,然后调用Run()。返回false并且角色实例被回收(重新启动)。

请记住,在将角色实例添加到负载平衡器之前调用OnStart()。这使您有机会在流量开始前进行初始化。

FYI Here's more info关于角色生命周期。

+0

谢谢......我不清楚运行是否可以通过从门户重新启动角色,发生错误等时再次调用相同的实例,但是这回答了我的问题:) – KingOfHypocrites