延迟使虚拟机角色可用,直到启动任务完成

时间:2012-05-04 14:37:40

标签: azure

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

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

2 个答案:

答案 0 :(得分:1)

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

    private void RoleEnvironmentStatusCheck(object sender, RoleInstanceStatusCheckEventArgs e)
    {
        if (this.busy)
        {
            e.SetBusy();
        }
        statusCheckWaitHandle.Set();
    }

答案 1 :(得分: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>