J'ai un IActor que je veux appeler pour faire un calcul simple basé sur des rappels. Il s'appelle ainsi:

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);
}

Cependant, chaque fois que la méthode SetupReminderAsync est appelée, j'obtiens une exception HRESULT: 0x80071BCD: Service does not exist. Je ne suis pas sûr de ce que cela signifie car je peux clairement voir le service de l'acteur tourner en mode débogage. Je pourrais vraiment utiliser quelques conseils sur ce qui se passe. Merci!

1
Woody1193 21 avril 2017 à 02:19

3 réponses

Meilleure réponse

Il s'avère que mon ITEM_SCHEDULER_URI n'était pas correct car j'ai supposé un point de terminaison différent de celui qui était réellement rempli. Après avoir vérifié le ApplicationManifest, j'ai pu résoudre le problème.

0
Woody1193 21 avril 2017 à 15:33

Voyez-vous un point de terminaison pour ActorService dans Service Fabric Local Cluster Manager? J'ai vu ce problème lorsque j'ai oublié de définir un point de terminaison. Si vous utilisez la valeur par défaut ActorService, je pense qu'elle définit la sienne. Mais si vous utilisez votre propre ActorService personnalisé, vous devez remplacer CreateServiceReplicaListeners() et en créer un vous-même:

protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
{
    return new List<ServiceReplicaListener>(base.CreateServiceReplicaListeners())
    {
        new ServiceReplicaListener(c => new FabricTransportServiceRemotingListener(c, this)),
    };
}
1
HiredMind 21 avril 2017 à 07:07

Cela m'a pris un certain temps, mais mon problème était que j'avais complètement la mauvaise interface dans l'appel ActorProxy.Create. Service Fabric enregistre toujours l'acteur et il peut être vu dans l'explorateur de Service Fabric, mais ne vous y trompez pas.

Ne soyez pas comme moi, vérifiez les erreurs de codage simples avant d'aller examiner les manifestes.

1
Taran 4 oct. 2017 à 18:18