使用WCF的MSMQ监听器
本文关键字:监听器 MSMQ WCF 使用 | 更新日期: 2023-09-27 18:10:56
有人知道如何使用WCF实现MSMQ监听器吗?
我建立了2个wcf服务,一个用于向MSMQ队列发送数据,另一个用于在MSMQ队列中有插入时由MSMQ侦听器调用。现在我想知道如何以及在哪里我需要写这个MSMQ监听器
您不需要在您的服务上手动实现队列侦听器。
通过创建服务操作契约,您可以指定当消息到达本地队列时将调用的处理程序方法。
你可能(或者应该)有这样的东西:
[OperationContract(IsOneWay = true, Action = "*")]
void HandleMyMessage (MsmqMessage<String> message);
这将确保在传递消息时调用服务实现中的HandleMyMessage()方法。
在下面的评论中回答您的问题,要定义队列地址,您可以在<System.ServiceModel>
配置中这样做:
<services>
<service
name="Microsoft.ServiceModel.Samples.OrderProcessorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<!-- Define NetMsmqEndpoint -->
<endpoint address="net.msmq://localhost/private/ServiceModelSamplesTransacted"
binding="netMsmqBinding"
contract="Microsoft.ServiceModel.Samples.IOrderProcessor" />
<!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
从这里:http://msdn.microsoft.com/en-us/library/ms789032.aspx