从 .Net Core Stateless Service 调用 .Net 框架 Service Fabric Actor

Posted

技术标签:

【中文标题】从 .Net Core Stateless Service 调用 .Net 框架 Service Fabric Actor【英文标题】:Calling .Net framework Service Fabric Actor from .Net Core Stateless Service 【发布时间】:2019-04-07 04:28:22 【问题描述】:

actor 依赖于用 .Net Framework 编写的 Nuget 包。 接口项目是用 .Net 标准编写的,因此可以从 .Net 核心无状态服务中使用。

当我尝试从无状态服务调用我的演员时,我收到一个错误:

FabricInvalidAddressException: NamedEndpoint 'V2Listener' not found in the address '"Endpoints":"":"abc.mydomain.com:30001+7cd01089-ada5-47b4-b057-c5ec048e5c9e-131856623077216555-c8ffdd2b-d8de-4fb1-a0c4-6aa54aede1a4"' for partition '7cd01089-ada5-47b4-b057-c5ec048e5c9e'
Microsoft.ServiceFabric.Services.Communication.Client.CommunicationClientFactoryBase<TCommunicationClient>.CreateClientWithRetriesAsync(ResolvedServicePartition previousRsp, TargetReplicaSelector targetReplicaSelector, string listenerName, OperationRetrySettings retrySettings, bool doInitialResolve, CancellationToken cancellationToken)

我已经尝试按照微软的监听器升级教程在actor上添加V2Listener,但没有成功。

【问题讨论】:

您是否在您的 actorservice 的服务清单中添加了一个名为 ServiceEndpointV2 的服务端点?你在用FabricTransportActorRemotingProviderAttribute吗? 这是问题,谢谢。我使用的是 FabricTransportServiceRemotingProviderAttribute 而不是 Actor 属性。 【参考方案1】:

请确保:

    您在您的演员服务上使用FabricTransportActorRemotingProviderAttribute。 您的 actorservice 的服务清单中有一个名为“ServiceEndpointV2”的服务端点

【讨论】:

以上是关于从 .Net Core Stateless Service 调用 .Net 框架 Service Fabric Actor的主要内容,如果未能解决你的问题,请参考以下文章

.Net轻量状态机Stateless

.net framework(4.6.2) 迁移 .net core(2.2) 总结

.NET Core WebAPI - 带有属性路由的 404 回退

从.Net core 2.2迁移到.Net Core 3.0

从 .NET Core 2.1 迁移到 .NET Core 3.1 后,publish 有问题

无状态服务(stateless service)