首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF MsmqIntegrationBinding

WCF MsmqIntegrationBinding
EN

Stack Overflow用户
提问于 2011-11-17 02:18:46
回答 1查看 1.8K关注 0票数 1

为了让WCF Service使用MsmqIntegrationBinding从队列中提取消息,是否必须通过使用MsmqIntegrationBinding的进程将从MSMQ队列中提取的消息添加到队列中?我们有一个使用System.Messaging将xml有效负载写入队列的遗留进程,当我运行该进程尝试从队列中提取消息时,没有发生任何事情(这意味着消息留在队列中)。我只是想知道,如果消息是使用另一个进程入队的,您还能使用WCF / MsmqIntegrationBinding将消息出队吗?

我知道理想情况下您应该使用DataContracts和NetMsmqBinding,但不幸的是,在他的情况下,我们无法修改查询消息的过程。

我相信你能看出来,我对WCF / MSMQ仍然一无所知,所以也许解决方案很简单。

任何建议都将不胜感激。

谢谢,

S

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-17 02:56:40

MsmqIntegrationBinding可以使用不同的格式化程序来读取/写入数据到队列。这可以通过设置绑定的serializationFormat属性来完成。例如,要与COM客户端进行互操作,可以将serializationFormat设置为ActiveX。要与.net客户机进行互操作,请将其设置为Xml。

代码语言:javascript
复制
<service name="MyQueueListenner">

    <!-- Active X endpoint -->
    <endpoint address="msmq.formatname:DIRECT=OS:.\private$\myQueue"
              binding="msmqIntegrationBinding"
              bindingConfiguration="COMConfig"
              contract="MyContract" />

    <!-- .Net endpoint-->
    <endpoint address="msmq.formatname:DIRECT=OS:.\private$\myOtherQueue"
              binding="msmqIntegrationBinding"
              bindingConfiguration="DotNetConfig"
              contract="MyContract" />

  </service>
  ...

  <msmqIntegrationBinding>
    <binding serializationFormat="ActiveX" name="COMConfig" durable="false" exactlyOnce="false">
      <security mode="None" />
    </binding>
    <binding serializationFormat="Xml" name="DotNetConfig" durable="false" exactlyOnce="false">
      <security mode="None" />
    </binding>
  </msmqIntegrationBinding>

这使您可以使用各种格式化程序,从而最大限度地提高与队列客户端的互操作性。

完整的值列表在这里:http://msdn.microsoft.com/en-us/library/system.servicemodel.msmqintegration.msmqmessageserializationformat.aspx

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8156629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档