簡體   English   中英

如何從Azure上運行的IIS進程重新啟動服務器?

[英]How to restarting server from an IIS process running on Azure?

我們正在Azure上運行WCF服務,我們希望能夠從代碼重新啟動計算機。

我嘗試了以下方法:

方法1-使用Process.Start(“ shutdown.exe”)

http://msdn.microsoft.com/zh-CN/library/vstudio/system.diagnostics.process.start

這種方法的問題-IIS 7具有應用程序池的安全性,並且在Azure重置上手動更改權限/等,因此無法信任。

我嘗試使用icaclshttp://technet.microsoft.com/zh-cn/library/cc753525.aspx )授予IIS運行shutdown.exe權限,但不幸的是,它似乎不適用於Windows icacls文件system32文件夾。

方法2-調用RoleEnvironment.RequestRecycle

http://msdn.microsoft.com/zh-cn/library/microsoft.windowsazure.serviceruntime.roleenvironment.requestrecycle.aspx

我們使用了此功能,效果很好-但是,我們需要完全重啟服務器,而不僅僅是角色實例回收。

方法3-使用Azure的REST API

http://msdn.microsoft.com/zh-CN/library/azure/gg441298.aspx

到目前為止,這看起來是實現此目標的最有前途的方法,我能夠通過生成證書並將其作為管理證書上傳到Azure門戶上,從我的開發機上使用它,但是,對於我來說,我一生無法從Azure實例本身獲取管理證書。


所以-如果有人能想到使方法1或3起作用的方法很棒,或者如果您能想到另一種選擇-則將不勝感激。

另一個選擇是使用Azure Powershell cmdlet( http://azure.microsoft.com/zh-cn/documentation/articles/install-configure-powershell/ )。

然后,您可以運行Restart-AzureVMhttp://msdn.microsoft.com/zh-cn/library/dn495199.aspx )+其他許多管理命令

我最終使用了方法3(使用Azure的管理庫),並且在“發布設置”文件(可以在此處下載https://windows.azure.com/download/publishprofile.aspx )中使用base64編碼的管理證書。

里面有附加到我的訂閱的管理證書的base64字符串。

不是最漂亮的解決方案,但它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM