Share via


方法 : WCF エンドポイントを使用してキューに置かれたメッセージを交換する

キューを使用すると、通信中にサービスを使用できない場合でも、クライアントと Windows Communication Foundation (WCF) サービス間で信頼できるメッセージングを使用できます。以下の手順は、WCF サービスの実装時に、標準のキューに置かれたバインディングを使用してクライアントとサービス間で永続的な通信を確保する方法を示しています。

ここでは、NetMsmqBinding を使用して WCF クライアントと WCF サービス間でキューによる通信を行う方法について説明します。

WCF サービスでキューを使用するには

  1. ServiceContractAttribute でマークされたインターフェイスを使用して、サービス コントラクトを定義します。

  2. サービス コントラクトの一部であるインターフェイスの動作を OperationContractAttribute でマークし、メソッドに対して応答が返されないため、一方向と指定します。サービス コントラクトおよびその操作の定義の例を次のコードに示します。

  3. サービス コントラクトがユーザー定義型を渡す場合は、その型のデータ コントラクトを定義する必要があります。データ コントラクトの例を次のコードに示します。このデータ コントラクトを定義するクラスによって多数のメソッドが定義されることに注意してください。これらのメソッドは、データ コントラクトの一部とは見なされません。DataMember 属性で宣言されているメンバだけがデータ コントラクトに含まれます。

  4. インターフェイスで定義したサービス コントラクトのメソッドをクラスに実装します。

  5. System.Messaging を使用してトランザクション キューを作成します。代わりに、MSMQ (Microsoft Message Queuing) Microsoft 管理コンソール (MMC: Microsoft Management Console) を使用してキューを作成することもできます。その場合は、トランザクション キューを作成してください。

  6. サービス アドレスを指定し、標準の NetMsmqBinding バインディングを使用する ServiceEndpoint を構成で定義します。WCF 構成の使用詳細については、 、「Windows Communication Foundation アプリケーションの構成」を参照してください。

  7. ServiceHost を使用して、キューからメッセージを読み取って処理する OrderProcessing サービスのホストを作成します。

  8. サービス ホストを開いてサービスを使用できるようにします。

  9. サービス ホストを閉じます。

キューに置かれたサービスのクライアントを作成するには

  1. Svcutil.exe ツールを使用して、WCF クライアントを作成します。

  2. アドレスを指定し、標準の NetMsmqBinding バインディングを使用する ServiceEndpoint を構成で定義します。

  3. トランザクションのスコープを作成してトランザクション キューに書き込みます。

  4. 電卓操作を呼び出します。

  5. WCF クライアントを閉じます。

関連項目

タスク

方法 : WCF エンドポイントとメッセージ キュー アプリケーションを使用してメッセージを交換する

リファレンス

NetMsmqBinding

概念

WCF でのキュー

その他の技術情報

Transacted MSMQ Binding