我有一个WCF路由器使用netMsmqBinding向私有msmq发送消息。我有另一个WCF服务侦听该队列上的消息。当安全模式设置为“无”时,我能够将消息发送到队列,并且还可以从队列接收消息而不会出现任何问题。当我尝试使用“消息”安全模式时,我能够将消息发送到队列,但是我无法从队列接收消息,我的接收服务不会被调用。什么会导致这个问题?这是我收听消息的服务的配置文件......
<configuration>
<system.serviceModel>
<services>
<service name="MyService" behaviorConfiguration="ServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/MyService" />
</baseAddresses>
</host>
<endpoint name="NET.MSMQ_1"
address="net.msmq://localhost/private/TestQueue1"
binding="netMsmqBinding" bindingConfiguration="Binding"
contract="MyContract" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netMsmqBinding>
<binding name="Binding">
<security mode="Message"/>
</binding>
</netMsmqBinding>
</bindings>
</system.serviceModel>
</configuration>
答案 0 :(得分:1)
让MSMQ和WCF正常工作并不总是那么容易 - 但确实有效! : - )
查看由汤姆·霍兰德(Tom Hollander)撰写的关于这个主题的三部分博客文章系列 - 由于这个原因,我完成了我的工作: