2017-01-24 3 views
0

Verwenden von Visual Studio Team Services zum Implementieren unserer CI/CD-Pipeline mithilfe von Build- und Release-Definitionen. Eines unserer Projekte baut richtig, aber nicht, wenn sie mit dem folgenden Fehler auf einen Remote-Service-Fabric-Cluster bereitstellen:Bereitstellen der Service Fabric-Anwendung schlägt fehl - Die EntryPoint Xyz.exe wurde nicht gefunden

2017-01-24T21:57:57.7395575Z ##[error]The EntryPoint mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe is not found. 
2017-01-24T21:57:57.7395575Z ##[error]FileName: C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\TestApplicationPackage_356048141954\10xqzk0s.1m1\applicationpackage\mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg\ServiceManifest.xml 

am Anwendungspaket Sehen, sehen wir, dass mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe richtig erzeugt wird und nicht fehlen.

Das gleiche Anwendungspaket (von der Registerkarte Artefakte in VSTS heruntergeladen) kann auf einem lokalen Cluster oder in unserem Entwicklungscluster mithilfe des von Visual Studio Enterprise generierten Skripts Deploy-FabricApplication.ps1 implementiert werden.

Betrachtet man den Task-Quellcode here, ist die Task in Zeile 146 nach dem Aufruf von Test-ServiceFabricApplicationPackage fehlerhaft. Wenn Sie diesen Befehl für das heruntergeladene Anwendungspaket manuell ausführen, wird jedoch der Wert true zurückgegeben.

Es scheint keine Möglichkeit zu geben, Protokolle ausführlicher zu machen. Wir haben andere Projekte, für die die CI/CD-Pipeline korrekt funktioniert.

bearbeiten

Build-Protokolle sind über 2MB, ich sie nicht hier posten kann.

Veröffentlichungsprotokolle: http://pastebin.com/BgVJX4mw

ApplicationManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<ApplicationManifest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="mycompany.VariableLibrary.App" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric"> 
    <Parameters> 
    <Parameter Name="QuestionnaireDefinitionEventAdapter_InstanceCount" DefaultValue="-1" /> 
    <Parameter Name="FillOutEventAdapter_InstanceCount" DefaultValue="-1" /> 
    <Parameter Name="RestAdapter_InstanceCount" DefaultValue="-1" /> 
    <Parameter Name="VariableLibraryService_MinReplicaSetSize" DefaultValue="3" /> 
    <Parameter Name="VariableLibraryService_PartitionCount" DefaultValue="1" /> 
    <Parameter Name="VariableLibraryService_TargetReplicaSetSize" DefaultValue="3" /> 
    <Parameter Name="VariableLibraryServiceUri" DefaultValue="" /> 
    <Parameter Name="EnvironmentName" DefaultValue="" /> 
    <Parameter Name="InstrumentationKey" DefaultValue="" /> 
    <Parameter Name="DiagEnableErrorPage" DefaultValue="" /> 
    <Parameter Name="JwtDomain" DefaultValue="" /> 
    <Parameter Name="JwtAudience" DefaultValue="" /> 
    <Parameter Name="JwtClientSecret" DefaultValue="" /> 
    <Parameter Name="DomainEventBusServiceBusTopicPath" DefaultValue="DomainEvents" /> 
    <Parameter Name="DomainEventBusServiceBusConnectionString" DefaultValue="" /> 
    <Parameter Name="QuestionnaireDefinitionSurveyServiceUri" DefaultValue="" /> 
    <Parameter Name="QuestionnaireDefinitionQuestionnaireServiceUri" DefaultValue="" /> 
    <Parameter Name="QuestionnaireDefinitionSampleServiceUri" DefaultValue="" /> 
    <Parameter Name="FillOutServiceUri" DefaultValue="" /> 
    </Parameters> 
    <ServiceManifestImport> 
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg" ServiceManifestVersion="1.0.0" /> 
    <ConfigOverrides> 
     <ConfigOverride Name="Config"> 
     <Settings> 
      <Section Name="AppSettings"> 
      <Parameter Name="EnvironmentName" Value="[EnvironmentName]" /> 
      <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" /> 
      <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" /> 
      <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" /> 
      <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" /> 
      </Section> 
     </Settings> 
     </ConfigOverride> 
    </ConfigOverrides> 
    </ServiceManifestImport> 
    <ServiceManifestImport> 
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.FillOutEventAdapterPkg" ServiceManifestVersion="1.0.0" /> 
    <ConfigOverrides> 
     <ConfigOverride Name="Config"> 
     <Settings> 
      <Section Name="AppSettings"> 
      <Parameter Name="EnvironmentName" Value="[EnvironmentName]" /> 
      <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" /> 
      <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" /> 
      <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" /> 
      <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" /> 
      </Section> 
     </Settings> 
     </ConfigOverride> 
    </ConfigOverrides> 
    </ServiceManifestImport> 
    <ServiceManifestImport> 
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.RestAdapterPkg" ServiceManifestVersion="1.0.0" /> 
    <ConfigOverrides> 
     <ConfigOverride Name="Config"> 
     <Settings> 
      <Section Name="AppSettings"> 
      <Parameter Name="EnvironmentName" Value="[EnvironmentName]" /> 
      <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" /> 
      <Parameter Name="DiagEnableErrorPage" Value="[DiagEnableErrorPage]" /> 
      <Parameter Name="JwtDomain" Value="[JwtDomain]" /> 
      <Parameter Name="JwtAudience" Value="[JwtAudience]" /> 
      <Parameter Name="JwtClientSecret" Value="[JwtClientSecret]" /> 
      <Parameter Name="VariableLibraryServiceUri" Value="[VariableLibraryServiceUri]" /> 
      </Section> 
     </Settings> 
     </ConfigOverride> 
    </ConfigOverrides> 
    </ServiceManifestImport> 
    <ServiceManifestImport> 
    <ServiceManifestRef ServiceManifestName="mycompany.VariableLibrary.VariableLibraryServicePkg" ServiceManifestVersion="1.0.0" /> 
    <ConfigOverrides> 
     <ConfigOverride Name="Config"> 
     <Settings> 
      <Section Name="AppSettings"> 
      <Parameter Name="EnvironmentName" Value="[EnvironmentName]" /> 
      <Parameter Name="InstrumentationKey" Value="[InstrumentationKey]" /> 
      <Parameter Name="DomainEventBusServiceBusConnectionString" Value="[DomainEventBusServiceBusConnectionString]" /> 
      <Parameter Name="DomainEventBusServiceBusTopicPath" Value="[DomainEventBusServiceBusTopicPath]" /> 
      <Parameter Name="QuestionnaireDefinitionSurveyServiceUri" Value="[QuestionnaireDefinitionSurveyServiceUri]" /> 
      <Parameter Name="QuestionnaireDefinitionQuestionnaireServiceUri" Value="[QuestionnaireDefinitionQuestionnaireServiceUri]" /> 
      <Parameter Name="QuestionnaireDefinitionSampleServiceUri" Value="[QuestionnaireDefinitionSampleServiceUri]" /> 
      <Parameter Name="FillOutServiceUri" Value="[FillOutServiceUri]" /> 
      </Section> 
     </Settings> 
     </ConfigOverride> 
    </ConfigOverrides> 
    </ServiceManifestImport> 
    <DefaultServices> 
    <Service Name="QuestionnaireDefinitionEventAdapter"> 
     <StatelessService ServiceTypeName="QuestionnaireDefinitionEventAdapter" InstanceCount="[QuestionnaireDefinitionEventAdapter_InstanceCount]"> 
     <SingletonPartition /> 
     </StatelessService> 
    </Service> 
    <Service Name="FillOutEventAdapter"> 
     <StatelessService ServiceTypeName="FillOutEventAdapter" InstanceCount="[FillOutEventAdapter_InstanceCount]"> 
     <SingletonPartition /> 
     </StatelessService> 
    </Service> 
    <Service Name="RestAdapter"> 
     <StatelessService ServiceTypeName="RestAdapter" InstanceCount="[RestAdapter_InstanceCount]"> 
     <SingletonPartition /> 
     </StatelessService> 
    </Service> 
    <Service Name="VariableLibraryService"> 
     <StatefulService ServiceTypeName="VariableLibraryService" TargetReplicaSetSize="[VariableLibraryService_TargetReplicaSetSize]" MinReplicaSetSize="[VariableLibraryService_MinReplicaSetSize]"> 
     <UniformInt64Partition PartitionCount="[VariableLibraryService_PartitionCount]" LowKey="-9223372036854775808" HighKey="9223372036854775807" /> 
     </StatefulService> 
    </Service> 
    </DefaultServices> 
</ApplicationManifest> 

ServiceManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<ServiceManifest Name="mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapterPkg" 
       Version="1.0.0" 
       xmlns="http://schemas.microsoft.com/2011/01/fabric" 
       xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <ServiceTypes> 
    <StatelessServiceType ServiceTypeName="QuestionnaireDefinitionEventAdapter" /> 
    </ServiceTypes> 

    <CodePackage Name="Code" Version="1.0.0"> 
    <EntryPoint> 
     <ExeHost> 
     <Program>mycompany.VariableLibrary.QuestionnaireDefinitionEventAdapter.exe</Program> 
     </ExeHost> 
    </EntryPoint> 
    </CodePackage> 

    <ConfigPackage Name="Config" Version="1.0.0" /> 

    <Resources> 
    <Endpoints> 
     <Endpoint Name="ServiceEndpoint" /> 
    </Endpoints> 
    </Resources> 
</ServiceManifest> 

Irgendwelche Ideen?

+1

Ich denke, wenn Sie die Build \ Deployment-Protokolle teilen und Ihre ServiceManifext.xml und ApplicationManifest.xml könnte anderen helfen, Ihre Frage zu beantworten. –

Antwort

2

Da Sie sagen, dass dies lokal funktioniert, aber nicht in einem echten azurblauen Cluster, frage ich mich, ob Sie irgendwo einen Pfad zu lange Fehler irgendwo schlagen, was dazu führt, dass die Datei nicht auf das Bild kopiert wird korrekt speichern oder andere Probleme verursachen. Verschiedene Namen innerhalb der Bereitstellung können auch zu langen Pfaden (> 260 Zeichen) beitragen, die in Windows leider fehlschlagen. Versuchen Sie, um zu sehen, ob das die Ursache ist, die ausführbare Datei wie A.exe umzubenennen, und versuchen Sie erneut Bereitstellung. Möglicherweise müssen Sie auch die Namen der Anwendung und des Servicetyps kürzen.

Der Fehler bedeutet normalerweise, dass eines Ihrer Servicepakete auf eine ausführbare Datei verweist (in diesem Fall sieht es wie QuestionnaireDefinitionEventAdapter.exe aus), aber das tatsächliche Paket, das Sie erstellen und versuchen, sich beim Cluster zu registrieren, fehlt diese ausführbare Datei. Sie können auch das tatsächliche Paket überprüfen, das als Teil Ihres Builds erstellt wird, und sicherstellen, dass es im Cluster vorhanden ist. Wenn Sie herausfinden möchten, was gerade in den Bildspeicher geschoben wird, um es zu überprüfen, können Sie Get-ServiceFabricImageStoreContent verwenden.

+1

Das ist richtig, die Verkürzung des Namens der gepackten ausführbaren Datei löste das Problem. Vielen Dank! – Spiff

Verwandte Themen