2016-08-26 3 views
5

Ich habe meiner Lösung ein Stateless Service Fabric-Projekt hinzugefügt und es als Web-API-Host eingerichtet. Ich habe nichts in den Dateien von Visual Studio hinzugefügt. Das Einzige, was etwas schief ging, war ein Git-Merge-Fehler in der Lösungsdatei, was dazu führte, dass ich die Projekte manuell neu hinzufügen musste.Service Fabric-Bereitstellungsfehler: ServiceManifest.xml fehlt für Dienst

Projekte werden wie folgt benannt:

  • Projektname/sfproj: ClientCore.CommandStackApi.Deploy
  • Servicename/csproj: ClientCore.CommandStackApi

Wenn ich einsetzen versuchen, ich den folgenden Fehler erhalten:

The BuildLayout of the application in C:\SfDevCluster\Data\ImageBuilderProxy\AppType\ClientCore.CommandStackApi.DeployType is invalid. ServiceManifest.xml is missing for service ClientCore.CommandStackApiPkg.

Wenn ich Dateien vergleichen, und alle pr Oject-Einstellungen Ich kann nachdenken, mit meinen anderen Service-Fabric-Projekten sieht alles gut aus, aber es beschwert sich, dass das Service-Manifest fehlt. Das einzige, was mir auffiel, war, dass das SF-Projekt eine Abhängigkeit vom CommandStackApi-Projekt verpasste, aber das änderte nichts.

ich auf zwei verschiedenen Rechnern ausprobiert habe, hatte der letzte von denen ein frischer des

Ich vermute, es etc. Service Fabric SDK installieren funktionieren würde, wenn ich alle Projekte entfernen und wieder alles eingerichtet, Dies ist jedoch auch früher passiert, als ich versucht habe, das Deploy-Paket und das Powershell-Skript genau aus dem MSDN-Handbuch zu erstellen. Daher hätte ich gerne einen Einblick in das, was ich möglicherweise falsch mache. Wenn dies einem reiferen Projekt passiert, habe ich nicht die Möglichkeit, die Lösung von Grund auf neu zu erstellen und das Visual Studio-Blackbox-Magic-Setup anzuzapfen, das es hinter den Kulissen tun muss. Irgendwelche Ideen, für was könnte falsch sein, würden geschätzt werden.

+0

Einig MSDN-Dokumentation, wie ein Paket zu bauen, ist hier zu/service-fabric-package-apps (Ich fand das nützlich) –

Antwort

7

Also habe ich endlich herausgefunden, was los war.

Ich schaute auf die Dateien und Projektabhängigkeiten, aber vermisste eine fehlende Dienstabhängigkeit. Wenn die beiden Projekte durch die Zusammenführung aus der Lösung entfernt wurden, muss das SF-Projekt die Servicereferenz verloren haben. Das Hinzufügen dieses Problems behebt das Problem.

+0

Genau das ist mir passiert. Das Problem mit dieser Situation ist, dass die Fehlermeldung keinen Hinweis darauf gibt, was falsch ist. –

0

Beim Hinzufügen eines vorhandenen Service Fabric-Projekts (.csproj) zu einem Dienstprojekt (.sfproj) musste ich zwei Abschnitte manuell in der Datei \ ApplicationPackageRoot \ ApplicationManifest.xml erstellen.

Beispiel:

<ServiceManifestImport> 
    <ServiceManifestRef ServiceManifestName="Sample.Service.Commander" ServiceManifestVersion="1.0.0" /> 
    <ConfigOverrides> 
    <ConfigOverride Name="Config"> 
     <Settings> 
     <Section Name="EndpointConfigSection"> 
      <Parameter Name="UseDifferentPorts" Value="[StatelessServices_UseDifferentPorts]" /> 
     </Section> 
     </Settings> 
    </ConfigOverride> 
    </ConfigOverrides> 
    <Policies> 
    <EndpointBindingPolicy EndpointRef="OwinEndpoint" CertificateRef="ClusterCert" /> 
    <EndpointBindingPolicy EndpointRef="OwinEndpoint0" CertificateRef="ClusterCert" /> 
    <EndpointBindingPolicy EndpointRef="OwinEndpoint1" CertificateRef="ClusterCert" /> 
    <EndpointBindingPolicy EndpointRef="OwinEndpoint2" CertificateRef="ClusterCert" /> 
    <EndpointBindingPolicy EndpointRef="OwinEndpoint3" CertificateRef="ClusterCert" /> 
    <EndpointBindingPolicy EndpointRef="OwinEndpoint4" CertificateRef="ClusterCert" /> 
    </Policies> 
</ServiceManifestImport> 

und

<Service Name="Commander"> 
    <StatelessService ServiceTypeName="CommanderType" InstanceCount="[MyService_InstanceCount]"> 
    <SingletonPartition /> 
    </StatelessService> 
</Service> 
Verwandte Themen