0

是否可能会延迟使虚拟机角色可用,直到启动任务完成?

在将机器安全地添加到负载平衡器之前,我需要在虚拟机启动时完成一些任务。有没有办法做到这一点?

4

2 回答 2

1

找到了解决方案。在 VM Role Startup windows 服务中,我可以处理 RoleEnvironment.StatusCheck 事件。然后我可以调用 SetBusy() 来告诉阻止实例在负载均衡器中可用。

    private void RoleEnvironmentStatusCheck(object sender, RoleInstanceStatusCheckEventArgs e)
    {
        if (this.busy)
        {
            e.SetBusy();
        }
        statusCheckWaitHandle.Set();
    }
于 2012-05-04T16:15:29.557 回答
0

我相信将taskType属性设置为simple将使角色在实际开始之前等待任务完成:

<ServiceDefinition name="MyService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
   <WebRole name="WebRole1">
      <Startup>
         <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple">
         </Task>
      </Startup>
   </WebRole>
</ServiceDefinition>
于 2012-05-04T14:57:42.303 回答