升级包后的Service Fabric Remote调用



我刚刚将SF包升级到最新版本(6.3.162(。昨天运行良好的服务调用现在都崩溃了,并出现以下错误:

未找到字段:'Microsoft。ServiceFabric。服务。ServiceTrace。来源。

堆栈跟踪:

。ServiceFabric。服务。Remoting。V2.Builder.InterfaceDetailsStore.UpdateKnownTypes(Int32接口ID,字符串接口名称,接口细节已知类型(在微软。ServiceFabric。服务。Remoting。V2.Builder.InterfaceDetailsStore.UpdateKnownTypesDetails(IEnumerable`1接口描述(在微软。ServiceFabric。服务。Remoting。V2.Builder.ServiceCodeBuilder.BuildProxyGenerator(类型接口类型(在微软。ServiceFabric。服务。Remoting。建设者CodeBuilder。微软ServiceFabric。服务。Remoting。建设者ICodeBuilder。GetOrBuildProxyGener(类型interfaceType(在微软。ServiceFabric。服务。Remoting。V2.Builder.ServiceCodeBuilder.GetOrCreateProxyGener(类型serviceInterfaceType(在微软。ServiceFabric。服务。Remoting。V2.Client.ServiceProxyFactory.CreateServiceProxy[TServiceInterface](Uri serviceUri,ServicePartitionKey partitionKey,TargetReplicaSelector TargetReplicaSelector,String listenerName(在微软。ServiceFabric。服务。Remoting。客户ServiceProxyFactory。CreateServiceProxy[TServiceInterface](Uri serviceUri,ServicePartitionKey partitionKey,TargetReplicaSelector TargetReplicaSelector,String listenerName(Inovatic。SF。Windows。外观控制器。付款管理员<>c_DisplayClass6_0。<b_0>d。MoveNext((

这里有一个调用(我试图修复它的一次尝试是尝试使用v2远程处理堆栈进行调用,所以我不确定这是否有效(:

[HttpGet]
public async Task<IActionResult> GetCustomerId(string mail)
{
return await TelemetryManager.ServiceRemotingDependencyCallAsync<IActionResult>(async () =>
{
try
{
//var proxy = ServiceProxy
//    .Create<IPayment>(_paymentServiceUri);
var proxyFactory = new ServiceProxyFactory(c => 
new FabricTransportServiceRemotingClientFactory());
var proxy = proxyFactory.CreateServiceProxy<IPayment>(_paymentServiceUri);
var customerId = await proxy
.GetStripeCustomerIdAsync(mail)
.ConfigureAwait(false);
return Ok(customerId);
}
catch (Exception e)
{
return BadRequest(e.InnerException);
}
},
dependencyType: DependencyType.StatelessService,
dependencyName: DependencyName.PaymentService,
target: _paymentServiceUri.ToString())
.ConfigureAwait(false);
}

调用的服务:

manifest : 
<Endpoints>
<!--<Endpoint Name="ServiceEndpoint" />-->
<Endpoint Name="ServiceEndpointV2" />  
</Endpoints>

payment.cs contains
[assembly: FabricTransportServiceRemotingProvider(RemotingListenerVersion = RemotingListenerVersion.V2, RemotingClientVersion = RemotingClientVersion.V2)]
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
//yield return new ServiceInstanceListener(this.CreateServiceRemotingListener);
//return this.CreateServiceRemotingInstanceListeners();
yield return new ServiceInstanceListener(c => new FabricTransportServiceRemotingListener(c, this));
}

知道吗?感谢

Xav

你能检查一下你的其他SF nuget软件包版本吗。是否都与6.3.162相同?您使用的是哪种SF运行时版本?

相关内容

最新更新