Azure Powershell Runbook - Get-AzureRMWebAppSlot SiteConfig.ConnectionStrings [0]错误无法索引到空数组

时间:2017-02-13 14:55:07

标签: powershell azure azure-powershell azure-automation

我试图在PowerShell工作流程Runbook中执行以下命令。我收到错误"无法索引到空数组。",这是不正确的,因为在Azure门户中作为PowerShell执行在本地计算机上完美运行的相同脚本没有执行工作流程Runbook。

任何人都可以看看这个吗?

$webApp = Get-AzureRMWebAppSlot -ResourceGroupName $ResourceGroupName -Name $WebSiteName -Slot $WebSiteSlot
$webApp
"Printing Website ConncectionString"
$webApp.SiteConfig.ConnectionStrings.ConnectionString[0]

enter image description here

1 个答案:

答案 0 :(得分:1)

某些类型没有正确序列化/反序列化,并且在PowerShell工作流中这是一个问题,因为PowerShell Workflow依赖于对象序列化/反序列化(这就是PSWF能够检查点,挂起和恢复的方式 - 它将所有对象转换为检查点/挂起时的字符串形式,并在恢复时从这些字符串恢复为完整对象。)

看起来Get-AzureRMWebAppSlot的输出对象是那些没有正确序列化/反序列化的类型之一。从您的屏幕截图中我可以看到SiteConfig的{​​{1}}属性是一个包含$webApp的字符串,而不是您期望的对象。显然,该对象没有正确地反序列化回原始形式,其中Microsoft.Azure.Management.WebSites.Model.SiteConfig是一个复杂的对象。

解决此问题的方法是仅与PowerShell脚本上下文中的对象进行交互,而不是与工作流上下文进行交互。例如:

SiteConfig