NServiceBus : Received an empty message

本文关键字:empty message an Received NServiceBus | 更新日期: 2023-09-27 18:10:04

我的NServiceBus抛出了一个警告,它收到了一个空消息,因此忽略了它。但消息确实不是空的。

总线配置

Configure.With()
                 .Log4Net()
                 .DefaultBuilder()
                 .XmlSerializer()
                 .RavenSubscriptionStorage()
                 .MsmqTransport()
                     .IsTransactional(true)
                     .PurgeOnStartup(false)
                 .UnicastBus();

留言如下。xml是正确的(我的意思是xml的值和标记与我发送的对象相比是正确的)。

<Messages>
<Class1>
<Class2>
<QueueAddress>.''private$''myerrorqueue</QueueAddress>
<Category>Some string here</Category>
<ExtraInfo> </ExtraInfo>
<Priority> 1 </Priority>
<LookupValue> 1 </LookupValue>
</Class2>
</Class1>
</Messages>

警告

2014-06-24 15:45:42,213 [Worker.14] WARN  NServiceBus.Unicast.UnicastBus [(null)
] - Received an empty message - ignoring.

我知道,如果只有只读属性,反序列化是不可能的。我的接口没有只读属性。

public interface ISomeInterfaceImplementedByClass1
{
    Class2 class2{ get; set; }
}

正如在NServiceBus中提到的,服务器向控制台抛出空消息警告,我确保在发送方和接收方对总线有相同的配置,但问题仍然存在。

可能是什么原因?

更新:如果我使用JSONSerializer,那么适当的处理程序将被调用。所以它不能与XMLSerializer一起工作

NServiceBus : Received an empty message

原因:我正在创建一个接口实例并发送它。XMLSerializer没有序列化接口。

我没有使用XMLSerializer,而是使用JSONSerializer,并调用了相应的Handler。