У нас есть две конечные точки NServiceBus в разных версиях, обе с сериализацией XML.
Когда старый пытается отправить сообщения более новому, например:
<?xml version="1.0" ?>
<Messages
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://tempuri.net/****.Marketplace.Common.Interfaces.Entities"
xmlns:baseType="****.Marketplace.Common.Interfaces.Entities.MarketplaceAuditRecordBase"
xmlns:baseType1="Harmony.Core.Messages.AuditRecordBase"
xmlns:baseType2="Harmony.Core.Messages.IAuditRecord">
<AuditRecord>
<Id>0</Id>
<BoutiqueUrlName></BoutiqueUrlName>
<BoutiqueId>5301a9f1-d5bd-45c1-8b4f-29b60ed5d8c5</BoutiqueId>
<UserId>null</UserId>
<Success>true</Success>
<EventDateUtc>2018-07-02T14:35:03.1815550</EventDateUtc>
<UserAgent>Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36</UserAgent>
<Url>http://marketplace.****.com/my/items/publish?productId=4181660</Url>
<CountryCode>GB</CountryCode>
<RequestId>4f6b42fa-4c27-4118-bb68-1e314d7a246e</RequestId>
<Application>Site</Application>
<EventCategory>Products</EventCategory>
<EventType>Product-State-Change</EventType>
<EventMessage>Product state changed from Unpublished to Live ()</EventMessage>
<ReferenceId>4181660</ReferenceId>
<SecondaryReferenceId>Live</SecondaryReferenceId>
</AuditRecord>
</Messages>
Не удается получить конечную точку с сообщением:
NServiceBus.MessageDeserializationException: An error occurred while attempting to extract logical messages from transport
---> System.Xml.XmlException: There are multiple root elements . Line 4, position 2.
Насколько я могу судить, эти сообщения должны быть обратно совместимыми, а XML в сообщении правильно сформирован и не вызывает проблем, если я попытаюсь разобрать его с XElement.Load
или new XmlDocument().LoadXml(xml)
.
Кто-нибудь может указать мне правильное направление относительно того, что не так?
Я не вижу каких-либо опций на XML-сериализаторе, чтобы поиграть с ним, и поиск в Google этой проблемы оказался в значительной степени бупкисом.