从 powershell 部署 Service Fabric。错误 -> Get-ServiceFabricClusterManifest:集群连接实例为空
Deploy Service Fabric from powershell. Error -> Get-ServiceFabricClusterManifest : Cluster connection instance is null
我正在尝试使用 powershell 将 Service Fabric 应用程序发布到 Azure。我想连接到集群然后调用脚本 "Deploy-FabricApplication.ps1"(在 visual studio 中创建新项目时生成的脚本)
为此,我创建了新的脚本文件,负责连接集群,然后从我正在调用的同一个脚本文件中调用 "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
在连接脚本和 Deploy-FabricApplication 中。ps1 我正在调用 "Test-ServiceFabricClusterConnection" 并且在两个脚本中它 returns 在我调用的两个脚本中也是如此 "Get-ServiceFabricClusterManifest" 和在这两种情况下,它 returns 对我来说都是清单,但是当我将 "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
感谢帮助
调用 Connect-ServiceFabricCluster
时设置了一个本地 $clusterConnection
变量。一些 SDK 脚本随后期望设置该变量,但由于您在不同的范围内执行脚本,因此该局部变量对它们不可用。
您可以点源调用 Deploy-FabricApplication。ps1
. .\Deploy-FabricApplication.ps1 -PublishProfileFile $PublishProfileFile -ApplicationPackagePath $ApplicationPackagePath -OverrideUpgradeBehavior $OverrideUpgradeBehavior -OverwriteBehavior $OverwriteBehavior -DeployOnly:$DeployOnly -UnregisterUnusedApplicationVersionsAfterUpgrade:$UnregisterUnusedApplicationVersionsAfterUpgrade -UseExistingClusterConnection:$true -SkipPackageValidation:$SkipPackageValidation
或者创建一个包含本地 $clusterConnection 变量的 $global:clusterConnection 变量
$global:clusterConnection = $clusterConnection
我正在尝试使用 powershell 将 Service Fabric 应用程序发布到 Azure。我想连接到集群然后调用脚本 "Deploy-FabricApplication.ps1"(在 visual studio 中创建新项目时生成的脚本)
为此,我创建了新的脚本文件,负责连接集群,然后从我正在调用的同一个脚本文件中调用 "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
在连接脚本和 Deploy-FabricApplication 中。ps1 我正在调用 "Test-ServiceFabricClusterConnection" 并且在两个脚本中它 returns 在我调用的两个脚本中也是如此 "Get-ServiceFabricClusterManifest" 和在这两种情况下,它 returns 对我来说都是清单,但是当我将 "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
感谢帮助
调用 Connect-ServiceFabricCluster
时设置了一个本地 $clusterConnection
变量。一些 SDK 脚本随后期望设置该变量,但由于您在不同的范围内执行脚本,因此该局部变量对它们不可用。
您可以点源调用 Deploy-FabricApplication。ps1
. .\Deploy-FabricApplication.ps1 -PublishProfileFile $PublishProfileFile -ApplicationPackagePath $ApplicationPackagePath -OverrideUpgradeBehavior $OverrideUpgradeBehavior -OverwriteBehavior $OverwriteBehavior -DeployOnly:$DeployOnly -UnregisterUnusedApplicationVersionsAfterUpgrade:$UnregisterUnusedApplicationVersionsAfterUpgrade -UseExistingClusterConnection:$true -SkipPackageValidation:$SkipPackageValidation
或者创建一个包含本地 $clusterConnection 变量的 $global:clusterConnection 变量
$global:clusterConnection = $clusterConnection