2017-04-20 20 views
0

私はIActorを持っています。それは、そのように呼ばれます:SetupReminderAsyncメソッドが呼び出されるたびにAzure:俳優の電話で "サービスは存在しません"

var actorId = new ActorId($"item_{resp.ResultValue.Id}"); 
var scheduler = ActorProxy.Create<IScheduler>(actorId, ITEM_SCHEDUER_URI); 
try 
{ 
    await scheduler.SetupReminderAsync(new ItemInformation() 
    { 
     EntityId = entityId.ToString(), 
     Date = resp.ResultValue.AutoResolveOn 
    }).ConfigureAwait(false); 
} 

はしかし、私はHRESULT: 0x80071BCD: Service does not exist例外を取得します。私は、Actorのサービスがデバッグモードでスピンアップすることを明白に見ることができるので、これが何を意味するのかよくわかりません。私は実際に何が起こっているかについてのガイダンスを使用することができます。ありがとう!

答えて

0

それは私が実際に移入されたものとは異なるエンドポイントを想定しているため、私のITEM_SCHEDULER_URIが正しくありませんでしたが判明しました。 ApplicationManifestを確認したところ、問題を解決できました。

1

サービスファブリックローカルクラスタマネージャでActorServiceのエンドポイントが表示されていますか。私はこの問題を、エンドポイントを定義するのを忘れたときに見ました。デフォルトのActorServiceを使用している場合、私はそれが独自のものを定義していると信じています。独自のカスタムActorServiceを使用している場合しかし、あなたはCreateServiceReplicaListeners()を上書きして、1を自分で作成する必要があります。

protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners() 
{ 
    return new List<ServiceReplicaListener>(base.CreateServiceReplicaListeners()) 
    { 
     new ServiceReplicaListener(c => new FabricTransportServiceRemotingListener(c, this)), 
    }; 
} 
0

これはしばらく時間がかかりましたが、私の問題は、ActorProxy.Createコールでは間違ったインターフェイスを持っていることでした。サービスファブリックはまだアクタを登録しており、サービスファブリックエクスプローラに表示されますが、だまされません。

マニフェストを精査する前に、単純なコーディングエラーがないかどうかチェックしてください。

関連する問題