2010-09-01 45 views
1

我看到了,我在WCF net.msmq使用protobuf网,并收到以下错误发送大邮件的问题看到了这个问题,protobuf网:凡是超过net.msmq

格式化抛出一个异常,而试图反序列化消息:反序列化操作“DeliverData”的请求消息体的错误。从命名空间“http://mynamespace”端元件“原”预期

如果消息大小为16K下,它工作

如果删除protobuf网,它的工作原理

如果我切换到basichttp,它的工作原理

但是如果邮件大小超过16k,使用protobuf-net,通过net.msmq,我得到错误。我已经设置了maxBufferPoolSize和maxReceivedMessageSize足够大,它没有帮助。

有没有其他人看到过这个?是否有其他人使用protobuf-net + net.msmq来处理大消息,并使其工作?

回答

0

对延误 - 节假日等抱歉。不,我还没有看到具体的问题。它调用“End元素”的事实表明它当时在xml层中(这是在涉及protobuf-net 真正之前)。你有什么方法可以可靠地重现这一点吗?


经过调查,这里的问题似乎是WCF的读者配额;这个例外似乎被MSMQ吞噬了,所以并不是很明显。通过引用System.Runtime.Serialization并适当增加绑定的.ReaderQuotas.MaxArrayLength,可以修复in configuration或代码(如果您正在手动设置绑定)。允许的最大值是2147483647

+0

感谢您的回复。我通过电子邮件发送了示范代码,演示了问题 – fatweasel 2010-09-07 23:21:11

+0

@fatweasel - 更新了 – 2010-09-19 19:46:58

+0

这很有效,谢谢! – fatweasel 2010-09-28 15:59:18