是否有可能延迟使虚拟机角色可用,直到启动任务完成?
我需要在虚拟机启动时完成一些任务,然后才能将机器安全地添加到负载均衡器中。有没有办法做到这一点?
答案 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>