0

1 つの共通プロジェクトにデプロイされた 5 つのアクターを含む SF アプリケーションがあります。これらのアクターの状態をバックアップする必要があります。

現在、私は単一ノードの開発クラスターにいます。ドキュメントの指示に従ったところ、1 人のアクターが完全に動作し、バックアップと復元が行われました。他のアクターに対して同じことをしようとすると、バックアップが失敗します。失敗したアクターのアクター サービスは、拡張されたアクター サービスではなく、基本アクター サービスにアタッチされているため、バックアップ ロジックを呼び出そうとすると、「インターフェイスが実装されていません」という例外が発生します。

アクター メソッドの 1 つにステップ デバッグし、ActorService プロパティを監視すると、それが拡張クラスにアタッチされていないことを確認できます。それはベース クラスを使用しています。

Microsoft.ServiceFabric.Actors.Runtime.ActorService

代わりに機能するアクターには、私の拡張クラスのタイプの ActorService があります。

ExtActorService.MyActorService

すべてのアクターに対してまったく同じことを行いますが、一部のアクターがカスタム クラスに登録されていないのはなぜですか?

4

1 に答える 1

0

私は自分で問題を解決しました。コードは正しく、更新されたパッケージをクラスターに正しく発行しなかったのは Visual Studio でした。何らかの理由でビルド エラーが発生しなかったとしても、VS は同じ古いパッケージをクラスターに公開していました。クラスター マネージャーでプロジェクト全体を削除し、VS で再構築してから再度展開しました。その時点で、すべてのアクターが正しく動作し、バックアップと復元を行います。問題が解決しました。

于 2019-08-30T16:44:27.260 に答える