c# - 使用 WCF 的 MSMQ 监听器

标签 c# wcf msmq

有人知道如何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>

来自这里:http://msdn.microsoft.com/en-us/library/ms789032.aspx

关于c# - 使用 WCF 的 MSMQ 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7735965/

相关文章:

C# 使用泛型类型简化构造函数中的属性选择器

c# - Sql Server CE - 临时禁用特定列的自动递增

c# - 强制 WcfSvcHost.exe 使用我的自定义服务主机

c# - 我已经创建了一个 WCF 服务,现在我想从引用中调用它,但为什么会出现 InvalidOperationException?

.net - 记录到 MSMQ/文本文件/数据库的性能比较

WCF 无法打开 MSMQ 队列 : Access is Denied

c# - 使用按钮打开 Outlook session 窗口

c# - ASP.net MVC - 指定显示模板的完整路径

c# - IOC 容器 - WCF 服务 - 我应该通过构造函数实例化所有依赖项吗?

c# - MSMQ 发送消息到远程队列