Actor激活之前调用Reliable Actor时出现Random SerializationException

时间:2019-03-24 17:33:06

标签: azure-service-fabric

当调用像这样的可靠Actor服务时,我们会得到随机的序列化异常:

类型:System.Runtime.Serialization.SerializationException 消息:元素“ http://schemas.microsoft.com/2003/10/Serialization/:anyType”包含映射到名称“ urn:ServiceFabric.Communication:ServiceResponseMessageHeaders”的类型的数据。解串器不知道任何映射到该名称的类型。如果您正在使用DataContractSerializer或将与“ ServiceResponseMessageHeaders”相对应的类型添加到已知类型的列表中,请考虑使用DataContractResolver-例如,通过使用KnownTypeAttribute属性或将其添加到传递给序列化程序的已知类型的列表中。 ToString:System.Runtime.Serialization.SerializationException:元素'http://schemas.microsoft.com/2003/10/Serialization/:anyType'包含来自映射到名称

的类型的数据

经过研究,许多人说这是远程处理v1,v2库不匹配的问题。但是,我们在所有actor.interface程序集中都定义了v2远程程序集属性。

[程序集:FabricTransportActorRemotingProvider(RemotingListenerVersion = RemotingListenerVersion.V2,RemotingClientVersion = RemotingClientVersion.V2)]

此外,异常不会100%发生;它完全随机发生。通常是这样的模式:

  1. 无法调用actor服务。引发序列化异常。
  2. 重试几次后,我们会看到“演员已激活”消息。
  3. 呼叫演员现在可以工作。

这似乎是在激活actor之前发生的。为什么会这样发生?

0 个答案:

没有答案