Я пытаюсь опубликовать приложение Service Fabric для Azure с помощью powershell. Я хочу подключиться к кластеру, а затем вызвать скрипт «Deploy-FabricApplication.ps1» (тот, который создается при создании нового проекта в visual studio)Развертывание сервисной ткани из powershell. Ошибка -> Get-ServiceFabricClusterManifest: экземпляр подключения кластера равен нулю
Для этого я создал новый файл сценария, который отвечает за подключение с кластером, а затем из того же файла сценария, я вызываю «Deploy-FabricApplication.ps1».
После запуска моего сценария я получаю следующее сообщение об ошибке:
Get-ServiceFabricClusterManifest : Cluster connection instance is null
At C:\Program Files\Microsoft SDKs\Service Fabric\Tools\PSModule\ServiceFabricSDK\Publish-UpgradedServiceFabricApplication.ps1:116 char:28
+ $clusterManifestText = Get-ServiceFabricClusterManifest
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [Get-ServiceFabricClusterManifest], NullReferenceException
+ FullyQualifiedErrorId : GetClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.GetClusterManifest
В сценарии подключения и разворачивать-FabricApplication.ps1 Я звоню «Тест-ServiceFabricClusterConnection» и в обоих сценариях он возвращает Правда также в обоих сценариях я я вызываю «Get-ServiceFabricClusterManifest», и в обоих случаях он возвращает мне манифест, но когда я добавил «Test-ServiceFabricClusterConnection» в «Publish-UpgradedServiceFabricApplication.ps1», тогда он вернул ту же ошибку, что упоминалось выше, но для «Test-ServiceFabricClusterConnection» " вызов.
Код для подключения сценария:
Param
(
[String]
$PublishProfileFile,
[String]
$ApplicationPackagePath,
[Switch]
$DeployOnly,
[Boolean]
$UnregisterUnusedApplicationVersionsAfterUpgrade,
[String]
[ValidateSet('None', 'ForceUpgrade', 'VetoUpgrade')]
$OverrideUpgradeBehavior = 'None',
[String]
[ValidateSet('Never','Always','SameAppTypeAndVersion')]
$OverwriteBehavior = 'Never',
[Switch]
$SkipPackageValidation,
[String]
$ConnectionEndpoint,
[String]
$ServerCertThumbprint,
[String]
$FindType,
[String]
$FindValue,
[String]
$StoreLocation,
[String]
$StoreName
)
$connectArgs = @{ ConnectionEndpoint = $ConnectionEndpoint; X509Credential = $True; StoreLocation = $StoreLocation; StoreName = $StoreName; ServerCertThumbprint = $ServerCertThumbprint; FindType = $FindType; FindValue = $FindValue }
try
{
Connect-ServiceFabricCluster @connectArgs;
$connection = Get-ServiceFabricClusterConnection;
Write-Host $connection;
$m = Get-ServiceFabricClusterManifest
Write-Host $m;
}
catch [System.Fabric.FabricObjectClosedException]
{
Write-Warning "Service Fabric cluster may not be connected."
throw
}
.\Deploy-FabricApplication.ps1 -PublishProfileFile $PublishProfileFile -ApplicationPackagePath $ApplicationPackagePath -OverrideUpgradeBehavior $OverrideUpgradeBehavior -OverwriteBehavior $OverwriteBehavior -DeployOnly:$DeployOnly -UnregisterUnusedApplicationVersionsAfterUpgrade:$UnregisterUnusedApplicationVersionsAfterUpgrade -UseExistingClusterConnection:$true -SkipPackageValidation:$SkipPackageValidation
Подводя итог, я понятия не имею, как установить подключение к кластеру, а затем использовать его в Deploy-FabricApplication.ps1
Спасибо за помощь
Спасибо за помощь, я назначили локальную переменную глобальной, и теперь она работает – TomaszMaryniak
Если вы затем перезагрузите свой локальный кластер и попробуйте повторно использовать соединение, вы получите 'Error: ... Exception: объект закрыт. -> Исключение из HRESULT: 0x80071BFE'. Запуск нового окна PowerShell исправляет его. –
И запустив 'Connect-ServiceFabricCluster' после сброса, вы получите:' Connect-ServiceFabricCluster: объект закрыт. В строке: 1 char: 1 + Connect-ServiceFabricCluster + CategoryInfo: InvalidOperation: (:) [Connect-ServiceFabricCluster], FabricObjectClosedException + FullyQualifiedErrorId: TestClusterConnectionErrorId, Microsoft.ServiceFabric.Powershell.ConnectCluster' –