2016-08-31 2 views
0

Beim Arbeiten mit einem zustandsbehafteten Dienst in ServiceFabric Version 5.1.163.9590 versuche ich, eine Demoanwendung mit drei WebApi-Diensten bereitzustellen, die ihren eigenen Status verwalten.Fehlerbehebung ServiceFabric StatefulService-Bereitstellung

Zwei der drei Dienste starten und erstellen ihre Partitionen ohne Fehler, aber der letzte spuckt Ereignisse eine Reihe von Warnungen und Fehler, die Fehler Detail hat diese faszinierende Nachricht:

Microsoft.ServiceFabric.Replicator.LoggingReplicator : GetCopyState The parameter copyContext is null. This might be caused by deployment bug that 'hasPersistedState' attribute is false. 

ich jede nicht finden kann externe Verweise auf diese Fehlermeldung.

Gibt es eine Möglichkeit, dies von der Anwendungs- und Servicebereitstellungsseite oder von der Clusterverwaltungsseite aus zu beheben?

Antwort

2

Der Fehler weist darauf hin, dass Sie über einen zustandsbehafteten Dienst mit dem Status "Persistent" verfügen, Service Service jedoch nicht darüber informiert haben, als Sie den Dienst bereitgestellt haben.

Es gibt ein Flag, das gesetzt werden muss, um Service Fabric anzuzeigen, dass ein zustandsbehafteter Dienst den Status beibehalten hat (im Gegensatz zum Zustand, der "flüchtig" ist, dh nur im Speicher).

In Ihrem ServiceManifest.xml, stellen Sie sicher, dass Sie dieses Flag auf dem Diensttyp festgelegt haben:

<ServiceTypes> 
     <StatefulServiceType ServiceTypeName="MyServiceType" HasPersistedState="true" /> 
    </ServiceTypes> 

Dann, wenn Sie durch Powershell sind bereitstellen, stellen Sie sicher, dass Sie setzen dieses Kennzeichen, wenn Sie eine Instanz erstellen der Service:

PS > New-ServiceFabricService -Stateful -HasPersistedState -ServiceTypeName "MyServiceType" ... 
+0

Können Sie das Flag HasPersistedState ändern, nachdem der Dienst erstellt wurde? – noocyte