2016-04-06 3 views
0

Wir verfügen über eine Service Fabric-Anwendung mit mehreren Akteuren und Diensten. Die Akteure & Services werden erfolgreich auf den meisten Entwicklungsmaschinen bereitgestellt und ausgeführt. Auf einigen Entwicklungsmaschinen zeigt jedoch einer der Dienste ohne ersichtlichen Grund einen Fehlerstatus an.Service Fabric-Dienst kann nicht mit TypeLoadException gestartet werden

Im Service Fabric Explorer wird das Fehlersymbol auf dem Cluster bis zur Partition angezeigt. Der Knoten zeigte jedoch nicht an, dass er sich in einem Fehlerstatus befand. Einige Minuten später zu warten, hat der Knoten ein Warnsymbol zeigen, und die folgende Fehlermeldung:

Ungesund Ereignis: SourceId = ‚System.RA‘, Eigenschaft = ‚ReplicaOpenStatus‘, HealthState = ‚Warnung‘, ConsiderWarningAsError = falsch. Replica hatte mehrere Fehler während des Öffnens. Fehler = System.TypeLoadException (-2146233054) konnte nicht geladen Typ 'Microsoft.ServiceFabric.Data.ReliableStateManagerImpl' aus Assembly ‚Microsoft.ServiceFabric.Data.Impl, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'bei Microsoft.ServiceFabric.Data.ReliableStateManager.get_Impl() bei Microsoft.ServiceFabric.Data.ReliableStateManager.Microsoft.ServiceFabric.Data.IStateProviderReplica.Initialize (StatefulServiceInitializationParameters initializationParameters) bei Microsoft.ServiceFabric.Services.Runtime.StatefulServiceBase. System.Fabric.IStatefulServiceReplica.Initialize (StatefulServiceInitializationParameters initializationParameters) um System.Fabric. ServiceFactoryBroker.CreateHelper [tfactory, TReturnValue] (IntPtr nativeServiceType, IntPtr nativeServiceName, UInt32 initializationDataLength, IntPtr nativeInitializationData, Guid PartitionID, Func 3 creationFunc, Action 2 initializationFunc, ServiceInitializationParameters initializationParameters)

I Unterbrechungspunkte gesetzt und festgestellt, dass jede erwartete Zeile von program.cs wird ausgeführt und es wird schließlich zu Thread.Sleep (Timeout.Infinite). Aber keine einzige Zeile des Code des fehlerhaften Dienstes wird getroffen.

Der in Rede stehende Dienst ist Stateful und teilt eine Versammlung mit einem statuslosen Akteur. Ich tendiere nicht dazu, zwei Akteure/Dienste in eine DLL zu stecken, sondern einen Kollegen und es funktioniert für den größten Teil des Teams. Ich weiß nicht, ob das ein potenzielles Problem ist.

Jeder im Team hat SDK 1.5 ausgeführt, als dies auf zwei Dev-Maschinen geschah. Ich habe ein Upgrade auf SDK 2.0 durchgeführt (aber die Assembly-Referenzen in Nuget wurden nicht geändert, um die 2.0-Assemblys zu verwenden). Gleiches Problem.

Ich habe eine Suche nach der Assembly 'Microsoft.ServiceFabric.Data.Impl' und fand sie unter [Programme] \ Microsoft Service Fabric \ bin \ Fabric \ Fabric.Code. Es ist Version 5.0.135.9590.

Mein Kollege, der es funktioniert hat, hat die gleiche Datei wie Version 4.5.175.9590.

Jede Hilfe oder Beratung wird sehr geschätzt.

Antwort

1

Leider kenne ich die Details nicht, aber ich glaube, dass, sobald Sie vollständig aktualisiert haben (neueste SDK + neueste nugget-Pakete) das Problem weggehen wird.

+0

Das ist wahrscheinlich unsere nächste Vorgehensweise. Jede Version des SF SDK ist besser als die letzte. Ich habe mit 2.0 auf einer VM gespielt und es ist wunderbar. – Shaun

+0

In der Tat, einige tolle Sachen im neuen SDK!Ich denke, mein Vorschlag war, dass es sich wahrscheinlich nicht lohnt, herauszufinden, was hier vor sich geht, und wenn möglich nur zu aktualisieren. Es wäre großartig, wenn wir eine Erklärung bekommen könnten. – charisk

+0

Es wäre gut zu wissen. Auf diese Weise weiß ich, wenn es erneut passiert, wie ich es beheben kann. Je mehr wir von Service Fabric kennen, desto besser. :-) – Shaun