Мы получаем случайные исключения сериализации при вызове службы Reliable Actor, такой как:
Тип: System.Runtime.Serialization.SerializationException Сообщение: Элемент 'http://schemas.microsoft.com/2003/10/Serialization/:anyType' содержит данные из сопоставляемого типак имени 'urn: ServiceFabric.Communication: ServiceResponseMessageHeaders'.Десериализатор не знает ни одного типа, который сопоставляется с этим именем.Рассмотрите возможность использования DataContractResolver, если вы используете DataContractSerializer или добавьте тип, соответствующий ServiceResponseMessageHeaders, в список известных типов - например, с помощью атрибута KnownTypeAttribute или добавив его в список известных типов, переданных в сериализатор.ToString: System.Runtime.Serialization.SerializationException: Элемент 'http://schemas.microsoft.com/2003/10/Serialization/:anyType' содержит данные типа, который сопоставляется с именем
. После исследований многие говорят, что это проблема удаленного взаимодействия библиотеки v1, v2.Однако у нас есть атрибут сборки удаленного взаимодействия v2, определенный во всех сборках actor.interface.
[Assembly: FabricTransportActorRemotingProvider (RemotingListenerVersion = RemotingListenerVersion.V2, RemotingClientVersion = RemotingClientVersion.V2)]
Также исключение не происходит в 100% случаев;это происходит совершенно случайно.Обычно в такой схеме:
- Не удалось вызвать службу актера.Исключение сериализации.
- После нескольких попыток мы видим сообщение "Актер активирован".
- Вызов актера работает сейчас.
Кажется, это происходит до того, какАктер активирован.Почему так происходит?