现在,当我在本地运行时,我可以从我的ASP.MVC web应用程序中执行Powershell Azure cmdlet和脚本,但是当我对Azure网站进行部署时,Powershell Azure cmdlet就不能工作了。
错误消息:
术语“Get-AzureSubscription”不被识别为cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后再试一次。
我想它不起作用,因为"azure cmdlet“没有安装在web服务器上。
我能做什么?有什么建议吗?
我现在再次测试在Azure虚拟机的IIS8中托管的应用程序,但是当应用部署到服务器上时,我不能使用Azure Cmdlets,Azure cmdlet已经安装在虚拟机上。
当我使用Visual在VM中调试应用程序时,我可以使用cmdlet,但是部署应用程序时,cmdlet是不可识别的。
为了使用Azure cmdlet,我还需要设置一些其他的东西?
这是一个函数的示例,该函数使用结果填充下拉列表,在本地主机中,它在IIS中工作得很好。
public IEnumerable<SelectListItem> getImageFamily()
{
var shell = PowerShell.Create();
shell.Commands.AddScript("C:\\inetpub\\wwwroot\\appName\Scripts\\test.ps1");
Collection<PSObject> results = shell.Invoke();
List<SelectListItem> items = new List<SelectListItem>();
foreach (var psObject in results)
{
string image = psObject.BaseObject.ToString();
items.Add(new SelectListItem { Text = image, Value = image });
}
return items;
}那么这就是简单的脚本
(Get-AzureVMImage).ImageFamily | sort -Unique我也试过
Import-Module -Name "${env:ProgramFiles(x86)}\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure"
(Get-AzureVMImage).ImageFamily | sort -Unique也试过了(我剪了一些代码.)
public IEnumerable<SelectListItem> getImageFamily()
{
...
shell.Commands.AddScript("(Get-AzureVMImage).ImageFamily | sort -Unique");
Collection<PSObject> results = shell.Invoke();
...
}发布于 2015-04-22 20:05:56
要回答具体问题,不可能在Azure Web应用程序(以前的Azure网站)中这样做。
不过你还有一些选择。
就我个人而言,我会尽我所能避免选择2和3,这只是不太好的设计。在某种程度上,我甚至后悔提到他们,因为你可能会遇到其他问题,试图让他们工作。但是,我想彻底回答我的问题。
https://stackoverflow.com/questions/29804795
复制相似问题