需要重启的 Azure 云服务启动任务

Azure Cloud Service Startup Task that requires reboot

尝试使用 osFamily 4,osVersion *

背景:我们有一个应用程序使用 System.Management.Automation.dll(来自 GAC,开发框是 W10)在 C# 代码中使用 Powershell。具体来说,我们正在使用 InitialSessionState 和 ExecutionPolicy 属性 - 我们发现它是 WMF 5 的一部分(在云服务上加载类型时出错,未找到异常)。

现在,可以通过安装 WMF 5 正确解决这个问题(我们首先尝试通过远程桌面;不,仅强制更新的 s.m.a.dll 进入 GAC 是行不通的)。问题是,安装程序要求重新启动 - 我认为这是启动任务的问题。

我们将安装程序添加到已有的 setup.cmd 中:

Win8.1AndW2K12R2-KB3134758-x64.msu/安静

它确实会自动重新启动角色实例,并再次运行 setup.cmd(这会在安装事件日志中添加一个错误条目,表明它已经安装)。

这次重新启动不会将云服务部署标记为失败。我们对此感到高兴,但是,这真的是一种受支持的行为吗?还是偶然的?

是否有受支持的方法可以使需要重新启动的安装程序工作?或者我们发现的行为是 "supported" 方式?

实际上并没有 "supported" 方法 - 如何初始化云服务完全取决于您。话虽如此:

鉴于云服务角色实例通常在重新启动后仍然存在,因此设置需要 重新启动的内容并没有错。然后是从重启返回时处理已安装软件的问题(例如,从最初安装软件的 .cmd 中留下面包屑文件)。有时这是安装软件的唯一方法(涉及重新启动),并且使用面包屑有助于减少后续重新启动时间(完成启动过程所需的时钟时间;而不是实际重新启动的次数)。

在这种情况下,只有初始角色实例引导有额外的重启。 (其他重启,来自访客 OS 和主机 OS 更新,或者硬件故障等,当然是分开的)。