MSMQ和WCF的新功能。 我希望能够以高速率处理传入的MSMQ消息。我想让它成为多线程(和事务)。 这样做的最佳方式是什么?任何例子,代码片段,理论都非常受欢迎。 另外,WCF如何知道MSMQ中是否有消息?或者我是否必须创建一个轮询MSMQ的Windows服务,然后对于找到的消息,在新线程上启动它并调用WCF服务并将消息传递给它? 什么是最好的方式?
非常感谢
答案 0 :(得分:0)
这里的答案是使用WCF并创建服务已知类型的数据协定。 这些已知类型是从队列中读取所期望的对象。
要使其成为多线程和事务性的,不仅队列需要是事务性的,还要装饰服务属性:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession, ReleaseServiceInstanceOnTransactionComplete = false)]
默认情况下InstanceContextMode是perSession。
您还需要在配置文件
上设置绑定