【发布时间】:2014-06-02 17:47:41
【问题描述】:
我们正在 Azure 上运行 WCF 服务,我们希望能够通过代码重新启动机器。
我尝试了以下方法:
方法一 - 使用 Process.Start("shutdown.exe")
http://msdn.microsoft.com/en-us/library/vstudio/system.diagnostics.process.start
这种方法的问题 - IIS 7 具有应用程序池的安全性,并且在 Azure 上手动更改权限/等会重置并且不可信。
我尝试使用icacls (http://technet.microsoft.com/en-us/library/cc753525.aspx) 授予 IIS 运行shutdown.exe 的权限,但不幸的是,它似乎不适用于system32 文件夹中的文件。
方法 2 - 调用 RoleEnvironment.RequestRecycle
我们已经使用了这个功能,它运行良好 - 但是我们需要完全重启服务器,而不仅仅是角色实例回收。
方法 3 - 使用 Azure 的 REST API
http://msdn.microsoft.com/en-us/library/azure/gg441298.aspx
到目前为止,这看起来是实现这一目标的最有希望的方法,我能够通过生成证书,将其作为管理证书上传到 Azure 门户上,在我的开发机器上使其工作,但是,在我的一生中我无法从 Azure 实例本身获得 管理 证书。
所以 - 如果有人能想出一种方法来使方法 1 或 3 起作用,或者如果你能想到另一种选择 - 将不胜感激。
【问题讨论】: