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



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

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

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

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

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>

最新更新