サービスファブリックアプリケーションには、いくつかのアクターとサービスがあります。俳優&は、開発マシンの大部分で正常に展開され、実行されます。しかし、いくつかの開発マシンでは、明らかな理由がないため、サービスの1つがエラー状態で表示されます。サービスファブリックサービスがTypeLoadExceptionで開始できない
サービスファブリックエクスプローラでは、クラスタにエラーアイコンが完全に表示されます。しかし、ノードはエラー状態であることを示していませんでした。ノードは、警告アイコンと、次のエラーメッセージを表示しなかった後に待っているのは数分、:
不健康なイベント:ソースID =「System.RA」、プロパティ=「ReplicaOpenStatus」、 HEALTHSTATE =「警告」、ConsiderWarningAsError = false。レプリカには開いている間に複数の失敗があった エラー= System.TypeLoadException (-2146233054)はアセンブリ からタイプ 'Microsoft.ServiceFabric.Data.ReliableStateManagerImpl' をロードできませんでした。「Microsoft.ServiceFabric.Data.Impl、バージョン= 5.0.0.0、文化=中立、 なPublicKeyToken = 31bf3856ad364e35 ' Microsoft.ServiceFabric.Services.Runtime.StatefulServiceBaseでMicrosoft.ServiceFabric.Data.ReliableStateManager.Microsoft.ServiceFabric.Data.IStateProviderReplica.Initialize(StatefulServiceInitializationParameters initializationParameters)で Microsoft.ServiceFabric.Data.ReliableStateManager.get_Impl()で。 System.Fabric.IStatefulServiceReplica.Initialize(StatefulServiceInitializationParameters initializationParameters)を に設定します。 ServiceFactoryBroker.CreateHelper [TFactory、TReturnValue](のIntPtr nativeServiceType、のIntPtr nativeServiceName、UInt32型 initializationDataLength、のIntPtr nativeInitializationData、のGUID partitionId、のFunc
3 creationFunc, Action
2 initializationFunc、 ServiceInitializationParametersのinitializationParameters)
Iブレークポイントを設定し、すべての予想されることを見出しましたprogram.csの行が実行され、最終的にThread.Sleep(Timeout.Infinite)に到達します。しかし、失敗したサービスのコードの一行にヒットすることはありません。
問題のサービスはステートフルであり、ステートレスアクタとアセンブリを共有します。私は2人の俳優/サービスを1つのdllに入れる傾向はないが、同僚はそれを行い、それはほとんどのチームにとって有効である。これが潜在的な問題であるかどうかはわかりません。
これは2台の開発マシンで発生した場合、チームの全員がSDK 1.5を実行していました。 SDK 2.0にアップグレードしました(ただし、Nugetのアセンブリリファレンスを2.0アセンブリを使用するように変更しませんでした)。同じ問題。
アセンブリ 'Microsoft.ServiceFabric.Data.Impl'を検索し、[Program Files] \ Microsoft Service Fabric \ bin \ Fabric \ Fabric.Codeにあります。バージョン5.0.135.9590です。
同僚が働いている私の同僚は4.5.175.9590と同じファイルを持っています。
何か助けやアドバイスをいただければ幸いです。
これはおそらく私たちの次の行動コースです。 SF SDKのすべてのバージョンは、最後のバージョンより優れています。私はVMで2.0で遊んできました。素晴らしいことです。 – Shaun
確かに、新しいSDKのいくつかの素晴らしいもの!おそらくここで何が起こっているのかを見つけ出し、可能であればアップグレードするだけの価値はないと私の提案は思います。私たちが説明を得ることができれば素晴らしいだろう。 – charisk
それは知っていると良いでしょう。そうすれば、もしそれが再び起こるなら、私はそれをトラブルシューティングする方法を知っています。サービスファブリックの機能を知っている方が多いほど良いでしょう。 :-) – Shaun