[英]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重置上手動更改權限/等,因此無法信任。
我嘗試使用icacls
( http://technet.microsoft.com/zh-cn/library/cc753525.aspx )授予IIS運行shutdown.exe
權限,但不幸的是,它似乎不適用於Windows icacls
文件system32
文件夾。
方法2-調用RoleEnvironment.RequestRecycle
我們使用了此功能,效果很好-但是,我們需要完全重啟服務器,而不僅僅是角色實例回收。
方法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-AzureVM
( http://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.