【问题标题】:How to restarting server from an IIS process running on Azure?如何从 Azure 上运行的 IIS 进程重新启动服务器?
【发布时间】: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

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.requestrecycle.aspx

我们已经使用了这个功能,它运行良好 - 但是我们需要完全重启服务器,而不仅仅是角色实例回收。

方法 3 - 使用 Azure 的 REST API

http://msdn.microsoft.com/en-us/library/azure/gg441298.aspx

到目前为止,这看起来是实现这一目标的最有希望的方法,我能够通过生成证书,将其作为管理证书上传到 Azure 门户上,在我的开发机器上使其工作,但是,在我的一生中我无法从 Azure 实例本身获得 管理 证书。


所以 - 如果有人能想出一种方法来使方法 1 或 3 起作用,或者如果你能想到另一种选择 - 将不胜感激。

【问题讨论】:

    标签: c# iis azure iis-7


    【解决方案1】:

    另一种选择是使用 Azure Powershell cmdlet(http://azure.microsoft.com/en-us/documentation/articles/install-configure-powershell/)。

    然后您可以运行Restart-AzureVM(http://msdn.microsoft.com/en-us/library/dn495199.aspx) + 许多其他管理命令

    【讨论】:

    【解决方案2】:

    我最终使用了方法 3(使用 Azure 的管理库),并在发布设置文件中使用了 base64 编码的管理证书(可以在此处下载 https://windows.azure.com/download/publishprofile.aspx)。

    里面有我订阅的管理证书的base64字符串。

    不是最漂亮的解决方案,但它有效。

    【讨论】:

      猜你喜欢
      • 2015-03-12
      • 2011-01-06
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2021-06-04
      相关资源
      最近更新 更多