1

我将 WCF 与 netMsmqBinding 一起使用。打开时serviceHost会发生哪种情况:

  1. serviceHost注册为 MSMQ 的侦听器 - 在发送到 MSMQ 的每条新消息上,MSMQ 都会通知它的所有侦听器。
  2. serviceHost将轮询 MSMQ 以获取新消息 -

开通服务主机

using (var serviceHost = new ServiceHost(typeof(Service)))
{                
    serviceHost.Open();

    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.ReadLine();    
}

如果第一种情况是真的,它实际上是如何注册到 MSMQ 的。我没有找到任何文章深入解释它是如何发生的。我会很感激任何文章。

4

1 回答 1

0

本实例中的 ServiceHost 是一个队列侦听器。

当队列接收到消息时,WCF 堆栈会调用您的服务操作,将队列消息传递给您的服务操作。

...MSMQ 将通知所有它的听众。

是不正确的。如果您在同一个队列上有多个侦听器,那么只有其中一个会收到消息。

于 2012-07-18T14:35:12.433 回答