1

Ich habe ein CI-Build für eine Service Fabric-Anwendung in Visual Studio Team Services gemäß dieser Dokumentation konfiguriert: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-set-up-continuous-integration.Nicht freigegeben, um Service Fabric-Anwendung auf dem Azure Remote-Cluster aus VSTS fortlaufende Integration bereitzustellen

Allerdings habe ich den im obigen Dokument angegebenen Deployment-Bereich geändert. Da ich auf meinem zuvor erstellten Remote-Azure-Cluster bereitstellen möchte, rufe ich die Deploy-FabricApplication.ps1 mit den erforderlichen Parametern mithilfe der PowerShell auf. Aber leider funktioniert das nicht. Ich erhalte die folgenden Fehler:

[Lücke] (Connect-ServiceFabricCluster @ClusterConnectionParameters) InvalidOperation: (:) [Connect-ServiceFabricCluster], FabricException FullyQualifiedErrorId: CreateClusterConnectionErrorId, Microsoft.ServiceFabric.Powershell.ConnectCluster

Warnung: Die Verbindung zum Service Fabric-Cluster konnte nicht überprüft werden.

[Fehler] Test ServiceFabricClusterConnection: Cluster-Verbindung Instanz ist null [Fehler] Bei C: \ Programme \ Microsoft SDKs \ Service [Fehler] Stoff \ Tools \ PSModule \ ServiceFabricSDK \ Publish-NewServiceFabricApplication.ps1: 119 char: 16 Leere : ResourceUnavailable: (:) [Test-ServiceFabricClusterConnection], Nullreferenceexception FullyQualifiedErrorId: GetClusterConnectionErrorId, Microsoft.ServiceFabric.Powershell.TestClusterConnection

ich Visual Studio erfolgreich mit bereitstellen können. Selbst wenn ich die Deploy-FabricApplication.ps1 von der Build-Maschine mit PowerShell ausführe, wird die Anwendung ohne Fehler bereitgestellt. Aber nur wenn ich es mit VSTS Build-Schritt (Teil von CI) ausführen, tritt der oben erwähnte Fehler auf.

Bitte beachten Sie, dass nach dem Vorschlag von Charisk auf einem anderen Thread Stackoverflow ich die Deploy-FabricApplication.ps1 Datei geändert haben 169. $ global die unten Zeile für Zeile zu setzen: clusterConnection = $ clusterConnection

Diese hilft auch nicht. Vielen Dank im Voraus für Ihre freundliche Hilfe.

+0

Welche Aufgabe verwenden Sie, um das Power-Shell-Skript auszuführen? Powershell oder Azure Powershell? Haben Sie die Auflösung in diesem Thread versucht: Mit der "puren" Powershell - Build - Aufgabe haben Sie sichergestellt, dass das Skript mit dem Befehl ausgeführt wurde. (Punkt-) Notation, die wie ein Zauber wirkte. –

+0

Ich benutze Powershell – user1814131

+0

Ich denke, dass das Problem in Bezug auf ist. (Punktnotation. Ich habe gerade den Pfad für die Standard-Deploy-FabricApplication.ps1 in VSTS-Build-Task angegeben. Ich habe auch einige Parameter bestanden.Wie kann ich sicherstellen, dass das Skript in Punktnotation ausgeführt wird? Ich glaube, dass das Aufrufen in meinem Szenario anstelle von dot sourcing der Fall ist. – user1814131

Antwort

0

Punktquellennotation bedeutet Aufruf des Skripts mit. "xxx.ps1". Siehe diesen Link für Details: PowerShell – What is dot sourcing and why use it?

enter image description here

+0

Ich habe schon so etwas probiert. Benutzte Inline-Skripte für die PowerShell-Aufgabe und verwendete den folgenden Powershell-Befehl. . ./Deploy-FabricApplication.ps1 -ApplicationPackagePath 'C: \ Agent \ _work \ 1 \ s \ TestApp \ pkg \ Freigabe' -PublishProfileFile 'C: \ Agent \ _work \ 1 \ s \ TestApp \ PublishProfiles \ Cloud.xml' - DeployOnly: $ false -UnregisterUnusedApplicationVersionsAfterUpgrade $ false -OverrideUpgradeBehavior 'Keine' -OverwriteBehavior 'SameAppTypeAndVersion' -ErrorAction Stop; Das Arbeitsverzeichnis wurde auf das Skriptverzeichnis festgelegt. Noch kein Glück! – user1814131

+0

@ user1814131 Versuchen Sie mit diesem Format: (. './Deploy-FabricApplication.ps1'). Die Dinge zwischen(). –

+0

Kein Glück ... Von der Ereignisanzeige ich folgende Fehlermeldung bekam: Transport 0x17FA9CEFF0: ​​failed Sicherheitseinstellungen {provider = SSL-Schutz = EncryptAndSign store = 'Current/My' findvalue = auf 'FindByThumbprint: 9c3b3216282cf97d22c9f0518d268ee408a06e31' remoteCertThumbprints = '9c3b3216282cf97d22c9f0518d268ee408a06e31' clientRoleEnabled = falsch claimBasedClientAuthEnabled = false}: CertificateNotFound – user1814131

1

In Ihrem Publizierungsprofil http://s30.postimg.org/bttleqitd/cloud.jpg Sie verwenden StoreLocation="CurrentUser" aber wenn Sie gefolgt https://azure.microsoft.com/en-us/documentation/articles/service-fabric-set-up-continuous-integration und speziell die Importieren Sie Ihre Automatisierungs Zertifikat Abschnitt unter Richten Sie Ihre Maschine zu bauen dann Sie Wahrscheinlich haben Sie Ihr Zertifikat in den Speicherort LocalMachine importiert.

Ändern Sie einfach StoreLocation in Ihrem Veröffentlichungsprofil von CurrentUser zu LocalMachine und Sie sollten gut gehen.

+1

Genau das war der Grund. Danke vielmals :) – user1814131