"方法未实施"从c#运行Azure脚本时出错

时间:2017-07-12 18:52:06

标签: c# azure-powershell

我正在尝试创建一个运行脚本的网站。我正在重新考虑这一点,我在大约3周前就开始研究这个问题了,我能够运行一个脚本并检索结果。现在我得到这个"方法没有实现"错误,代码没有变化......

    public partial class SiteMaster : MasterPage
{
    public static Runspace runspace = RunspaceFactory.CreateRunspace();
    public static Command login = new Command("select-azurermprofile");

    public static Collection<PSObject> UpdateVMsList()
    {
        ArrayList resourceGroups = GetRGs();
        string rgsForPS = FormatRGs(resourceGroups);

        PowerShell ps = PowerShell.Create();

        string scr = @"C:\Users\dimas\Source\Repos\runPSsite\slnSite\slnSite\PS\Get-AzureRMVMParallel.ps1 -ResourceGroupNames " +
            rgsForPS + "; $error;";


        ps.Runspace = Runspace.DefaultRunspace;
        Collection<PSObject> res = ps.Invoke();

        // here goes the treatment of my res variable
    }
}

我使用的是首页加载的母版页。我在代码的最后一行放置了一个断点,res包含这个:

{Microsoft.Azure.Commands.Profile.Models.PSAzureContext}
{Method 'AuthenticateAsync' in type 'Microsoft.Azure.Commands.Common.Authentication.KeyStoreApplicationCredentialProvider' from assembly 'Microsoft.Azure.Commands.Common.Authentication, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.}

第一行是预期的,我正在运行自己的登录脚本,该脚本使用使用Save-AzureRMProfile cmdlet创建的配置文件。

当我运行脚本Get-AzureRMVMParallel.ps1时会发生第二行,但如果我使用有效的ResourceGroup参数运行Get-AzureRMVM,则会发生同样的情况。

如果我打开PowerShell ISE,运行AzureLogin.ps1然后使用相同的参数调用get-azurermvmparallel,它就可以工作。

感谢您抽出宝贵时间阅读,我们将不胜感激。

迪马斯

1 个答案:

答案 0 :(得分:0)

我对这部分代码有类似的问题,它本周早些时候工作但已经开始失败了。我认为它可能与在Azure中升级的PowerShell有关:https://github.com/Azure/azure-powershell/releases/tag/v4.2.0-July2017

鉴于您的代码已停止工作,它是否可以相关?

更新:这为我们解决了问题:https://feedback.azure.com/forums/246290-automation/suggestions/16590229-get-azurermvm-failing-in-azure-automation