通过阅读各种文档和博客,听起来OnStart可以在角色开始接收流量之前初始化您需要的对象和事物。 我不清楚是否存在使用相同的辅助角色类实例多次调用OnStart的情况?
例如,我有一个注射容器和一个应该只创建一次的数据库连接。我需要确保不再停止和重新启动角色,而是将所有当前对象保留在内存中。在这种情况下,使用worker角色构造函数来初始化对象似乎更好。
答案 0 :(得分:5)
OnStart()
(RoleEntryPoint
类的成员,以及需要覆盖的方法)仅在角色实例生命周期中调用一次。返回true
然后调用Run()
。返回false
并回收角色实例(重新启动)。
请记住,在将角色实例添加到负载均衡器之前会调用OnStart()
。这使您有机会在流量开始之前初始化事物。
FYI Here's more info关于角色生命周期。