我的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.
我知道如果只有readonly属性,则无法进行反序列化。我的界面没有只读属性。
public interface ISomeInterfaceImplementedByClass1
{
Class2 class2{ get; set; }
}
如NServiceBus - Server is throwing empty message warning to the console中所述,我确保在发送方和接收方都有相同的总线配置,但问题仍然存在。
可能是什么原因?
更新: 如果我使用JSONSerializer,则调用适当的处理程序。所以它不适用于XMLSerializer。
答案 0 :(得分:0)
原因:我正在创建一个接口实例并发送它。 XMLSerializer没有序列化接口。
我使用了JSONSerializer而不是XMLSerializer,并且调用了适当的Handler。