Einige Arten nicht serialisiert/deserialisiert korrekt und in Powershell-Workflow, das ist ein Problem, weil Powershell-Workflow auf der Serialisierung/Deserialisierung Objekt setzt (das ist, wie PSWF der Lage ist, einen Checkpoint, zu suspendieren, und resume - Es konvertiert alle Objekte in eine Zeichenfolgenform, wenn es markiert/ausgesetzt wird, und stellt bei der Fortsetzung wieder vollständige Objekte aus diesen Zeichenfolgen wieder her.
Es würde erscheinen Get-AzureRMWebAppSlot
's Ausgabeobjekt ist einer dieser Typen, die nicht korrekt serialisiert/deserialisiert. Von Ihrem Screenshot kann ich sehen, dass die SiteConfig
Eigenschaft von $webApp
eine Zeichenfolge ist, die Microsoft.Azure.Management.WebSites.Model.SiteConfig
statt eines Objekts enthält, wie Sie erwarten. Offensichtlich wird das Objekt nicht korrekt in seine ursprüngliche Form deserialisiert, wobei SiteConfig
ein komplexes Objekt ist.
Die Möglichkeit, dies zu umgehen, besteht darin, nur mit dem Objekt im PowerShell-Skriptkontext statt mit dem Workflowkontext zu interagieren. Zum Beispiel:
workflow foo {
$ResourceGroupName = "RG"
$WebSiteName = "WS"
$WebSiteSlot = "Slot"
$ConnectionString = InlineScript {
$webApp = Get-AzureRMWebAppSlot -ResourceGroupName $using:ResourceGroupName -Name $using:WebSiteName -Slot $using:WebSiteSlot
$webApp.SiteConfig.ConnectionStrings.ConnectionString[0]
}
"Printing Website ConnectionString"
$ConnectionString
}
können Sie bestätigen, dass "$ webapp" tatsächlich Daten enthält und nicht "$ null" ist? – 4c74356b41
Ja, ich habe die Frage aktualisiert, um das zu berücksichtigen. @ 4c74356b41 – NikhilGoud
Bitte beachten Sie, dass ich dieses Problem speziell während der Ausführung dieses Skripts als Workflow bekomme. Wenn ich das gleiche Skript ohne einen Workflow ausführe, funktioniert alles gut. Aber ich brauche einen Workflow, um Parameter für das Skript zu nennen und die Ausführung zu planen. – NikhilGoud