据我了解,Azure应用程序角色在名为 WaWorkerHost.exe 的主机应用程序的帮助下运行,还有另一个名为 WaHostBootstrapper.exe 的应用程序,用于检查 WaWorkerHost .exe 正在运行,如果没有,它将运行 WaWorkerHost.exe 。
如何自行快速重启Worker角色?我可以重新启动机器工作者角色正在运行并等待几分钟或选择以下传统方法:
Taskkill / im / f WaWorkerHost.exe
等待几分钟让 WaHostBootstrapper.exe 启动,但效率非常低且速度慢。 是否有任何(即时)方法重新启动辅助角色?
我可以运行类似以下的内容并期望与 WaHostBootstapper.exe 类似的结果,还是有其他考虑因素?
WaWorkerHost.exe {MyAzureWorkerRole.dll}
答案 0 :(得分:1)
"从客户端获取状态WaWorkerHost.exe"
其功能之一是优雅地回收角色实例:
或者,您可以以编程方式重新启动实例:
使用Microsoft Azure Compute Management library:
X509Certificate2 cert = new X509Certificate2("");
var credentials = new CertificateCloudCredentials("your_subscription_id", cert);
using (var managementClient = new ComputeManagementClient(credentials))
{
OperationStatusResponse response =
await managementClient.Deployments.RebootRoleInstanceByDeploymentSlotAsync(
"cloud_service_name",
DeploymentSlot.Production, // or staging
"instance_name");
}
不建议这样做,原因有三:左
答案 1 :(得分:0)
如果角色本身意识到需要重新启动,则可以调用RoleEnvironment.RequestRecycle
以使角色实例重新启动。