有人知道如何MSMQ Listeners using WCF 吗?
我构建了 2 个 wcf 服务,一个用于将数据发送到 MSMQ 队列,另一个在 MSMQ 队列中插入时由 MSMQ 监听器调用。现在我想知道如何以及在何处编写此 MSMQ 监听器。
最佳答案
您不需要在您的服务上手动实现队列监听器。
只需创建您的服务操作契约(Contract),您就可以指定当消息到达本地队列时将调用的处理程序方法。
你可能(或应该)有这样的东西:
[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>
关于c# - 使用 WCF 的 MSMQ 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7735965/