C# 蔚蓝:“我的天。”;“服务不存在”;随叫随到

C# 蔚蓝:“我的天。”;“服务不存在”;随叫随到,c#,azure-service-fabric,service-fabric-actor,C#,Azure Service Fabric,Service Fabric Actor,我有一个IActor,我想调用它来做一些简单的基于提醒的计算。这就是所谓的: var actorId = new ActorId($"item_{resp.ResultValue.Id}"); var scheduler = ActorProxy.Create<IScheduler>(actorId, ITEM_SCHEDUER_URI); try { await scheduler.SetupReminderAsync(new ItemInformation() {

我有一个
IActor
,我想调用它来做一些简单的基于提醒的计算。这就是所谓的:

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);
}
var-actorId=new-actorId($“item_{resp.resp.ResultValue.Id}”);
var scheduler=ActorProxy.Create(actorId,ITEM\u SCHEDUER\u URI);
尝试
{
wait scheduler.setuprementerasync(新项目信息()
{
EntityId=EntityId.ToString(),
日期=resp.ResultValue.AutoResolveOn
}).配置等待(错误);
}

但是,每当调用
setuprementerasync
方法时,我都会得到一个
HRESULT:0x80071BCD:Service不存在
异常。我不确定这意味着什么,因为我可以清楚地看到演员的服务在调试模式下启动。我真的需要一些关于发生了什么的指导。谢谢

您是否在Service Fabric Local Cluster Manager中看到
ActorService
的端点?当我忘记定义端点时,我看到了这个问题。如果您使用的是默认的
ActorService
,我相信它定义了自己的。但如果您使用自己的自定义
ActorService
,则必须重写
CreateServiceReplicaListeners()
,并自己创建一个:

protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()
{
    return new List<ServiceReplicaListener>(base.CreateServiceReplicaListeners())
    {
        new ServiceReplicaListener(c => new FabricTransportServiceRemotingListener(c, this)),
    };
}
protectedoverride IEnumerable CreateServiceReplicaListeners()
{
返回新列表(base.CreateServiceReplicaListeners())
{
新建ServiceReplicaListener(c=>new FabricTransportServiceRemotingListener(c,this)),
};
}

结果是我的
项目调度程序URI
不正确,因为我假设的端点与实际填充的端点不同。检查
ApplicationManifest
后,我能够解决问题。

这花了我一段时间,但我的问题是我在
ActorProxy.Create
调用中使用了完全错误的接口。ServiceFabric仍然注册参与者,可以在ServiceFabric浏览器中看到它,但不要被愚弄

别像我一样,在检查清单之前先检查一下简单的编码错误