1

私はnetMsmqBindingでWCFを使用しています。serviceHostが開かれると、どのシナリオが発生しますか。

  1. serviceHostMSMQのリスナーとして登録されています-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はすべてのリスナーに通知します。

正しくありません。同じキューに複数のリスナーがある場合、そのうちの1つだけがメッセージを受け取ります。

于 2012-07-18T14:35:12.433 に答える