MsmqIntegrationBinding クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
MsmqIntegrationBinding クラスは、メッセージ キュー (MSMQ) メッセージMicrosoft Windows Communication Foundation (WCF) メッセージにマップします。
public ref class MsmqIntegrationBinding : System::ServiceModel::MsmqBindingBase
public class MsmqIntegrationBinding : System.ServiceModel.MsmqBindingBase
type MsmqIntegrationBinding = class
inherit MsmqBindingBase
Public Class MsmqIntegrationBinding
Inherits MsmqBindingBase
- 継承
例
次の構成ファイル スニペットは、クライアントで MsmqIntegrationBinding バインドを構成する方法を示しています。
次の構成ファイル スニペットは、サービスで MsmqIntegrationBinding バインドを構成する方法を示しています。
[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
[OperationContract(IsOneWay = true, Action = "*")]
void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}
<ServiceContract(Namespace:="http:'Microsoft.ServiceModel.Samples")> _
<ServiceKnownType(GetType(PurchaseOrder))> _
Public Interface IOrderProcessor
<OperationContract(IsOneWay:=True, Action:="*")> _
Sub SubmitPurchaseOrder(ByVal msg As MsmqMessage(Of PurchaseOrder))
End Interface
次のコードは、サービスで MsmqIntegrationBinding バインディングをプログラムで使用する方法を示しています。
public class OrderProcessorService : IOrderProcessor
{
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> ordermsg)
{
PurchaseOrder po = (PurchaseOrder)ordermsg.Body;
Random statusIndexer = new Random();
po.Status = (OrderStates)statusIndexer.Next(3);
Console.WriteLine("Processing {0} ", po);
}
// Host the service within this EXE console application.
public static void Main()
{
// Get base address from appsettings in configuration.
Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(IOrderProcessor), baseAddress))
{
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
}
}
Public Class OrderProcessorService
Implements IOrderProcessor
<OperationBehavior(TransactionScopeRequired:=True, TransactionAutoComplete:=True)> _
Public Sub SubmitPurchaseOrder(ByVal ordermsg As MsmqMessage(Of PurchaseOrder)) Implements IOrderProcessor.SubmitPurchaseOrder
Dim po As PurchaseOrder = ordermsg.Body
Dim statusIndexer As New Random()
po.Status = statusIndexer.Next(3)
Console.WriteLine("Processing {0} ", po)
End Sub
End Class
次のコードは、クライアントで MsmqIntegrationBinding バインディングをプログラムで使用する方法を示しています。
MsmqIntegrationBinding binding = new MsmqIntegrationBinding();
EndpointAddress address = new EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders");
ChannelFactory<IOrderProcessor> channelFactory = new ChannelFactory<IOrderProcessor>(binding, address);
IOrderProcessor channel = channelFactory.CreateChannel();
PurchaseOrder po = new PurchaseOrder();
po.customerId = "somecustomer.com";
po.poNumber = Guid.NewGuid().ToString();
PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.productId = "Blue Widget";
lineItem1.quantity = 54;
lineItem1.unitCost = 29.99F;
PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.productId = "Red Widget";
lineItem2.quantity = 890;
lineItem2.unitCost = 45.89F;
po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;
MsmqMessage<PurchaseOrder> ordermsg = new MsmqMessage<PurchaseOrder>(po);
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
channel.SubmitPurchaseOrder(ordermsg);
scope.Complete();
}
Console.WriteLine("Order has been submitted:{0}", po);
Dim binding As New MsmqIntegrationBinding()
Dim address As New EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders")
Dim channelFactory As New ChannelFactory(Of IOrderProcessor)(binding, address)
Dim channel As IOrderProcessor = channelFactory.CreateChannel()
Dim po As New PurchaseOrder()
po.customerId = "somecustomer.com"
po.poNumber = Guid.NewGuid().ToString()
Dim lineItem1 As New PurchaseOrderLineItem()
lineItem1.productId = "Blue Widget"
lineItem1.quantity = 54
lineItem1.unitCost = 29.99F
Dim lineItem2 = New PurchaseOrderLineItem()
lineItem2.productId = "Red Widget"
lineItem2.quantity = 890
lineItem2.unitCost = 45.89F
Dim lineItems(1) As PurchaseOrderLineItem
lineItems(0) = lineItem1
lineItems(1) = lineItem2
po.orderLineItems = lineItems
Dim ordermsg As MsmqMessage(Of PurchaseOrder) = New MsmqMessage(Of PurchaseOrder)(po)
Using scope As New TransactionScope(TransactionScopeOption.Required)
channel.SubmitPurchaseOrder(ordermsg)
scope.Complete()
End Using
Console.WriteLine("Order has been submitted:{0}", po)
注釈
Important
信頼されていないデータを使用してこのクラスからメソッドを呼び出すことは、セキュリティ上のリスクです。 このクラスのメソッドは、信頼できるデータでのみ呼び出します。 詳細については、「すべての入力を検証する」を参照してください。
このバインドを使用すると、WCF アプリケーションが COM、ネイティブ C++ API、または System.Messaging 名前空間で定義されている型を使用する既存の MSMQ アプリケーションとの間でメッセージを送受信できます。
コンストラクター
| 名前 | 説明 |
|---|---|
| MsmqIntegrationBinding() |
MsmqIntegrationBinding クラスの新しいインスタンスを初期化します。 |
| MsmqIntegrationBinding(MsmqIntegrationSecurityMode) |
指定したMsmqIntegrationBindingを使用して、MsmqIntegrationSecurityMode クラスの新しいインスタンスを初期化します。 |
| MsmqIntegrationBinding(String) |
指定した構成バインド要素の設定から、 MsmqIntegrationBinding クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| CloseTimeout |
トランスポートが例外を発生させる前に、接続が閉じるまでに指定された時間の間隔を取得または設定します。 (継承元 Binding) |
| CustomDeadLetterQueue |
有効期限が切れている、または転送または配信に失敗したメッセージが配置される、各アプリケーションの配信不能キューの場所を含む URI を取得または設定します。 (継承元 MsmqBindingBase) |
| DeadLetterQueue |
使用する配信不能キューの種類を示す列挙値を取得または設定します。 (継承元 MsmqBindingBase) |
| Durable |
このバインディングによって処理されるメッセージが永続的か揮発性かを示す値を取得または設定します。 (継承元 MsmqBindingBase) |
| ExactlyOnce |
このバインディングによって処理されたメッセージを 1 回だけ受信するかどうかを示す値を取得または設定します。 (継承元 MsmqBindingBase) |
| MaxReceivedMessageSize |
このバインディングによって処理されるメッセージの最大サイズ (バイト単位) を取得または設定します。 (継承元 MsmqBindingBase) |
| MaxRetryCycles |
受信アプリケーションへのメッセージの配信を試行する再試行サイクルの最大数を取得または設定します。 (継承元 MsmqBindingBase) |
| MessageVersion |
バインディングで構成されたクライアントとサービスによって使用されるメッセージ のバージョンを取得します。 (継承元 Binding) |
| Name |
バインディングの名前を取得または設定します。 (継承元 Binding) |
| Namespace |
バインディングの XML 名前空間を取得または設定します。 (継承元 Binding) |
| OpenTimeout |
トランスポートが例外を発生させる前に、接続を開くために指定された時間の間隔を取得または設定します。 (継承元 Binding) |
| ReceiveContextEnabled |
受信コンテキストの動作が要求されるかどうかを示す値を取得または設定します。 (継承元 MsmqBindingBase) |
| ReceiveErrorHandling |
有害メッセージの処理方法を指定する列挙値を取得または設定します。 (継承元 MsmqBindingBase) |
| ReceiveRetryCount |
アプリケーション キューから読み取られたメッセージに対する即時配信試行の最大数を取得または設定します。 (継承元 MsmqBindingBase) |
| ReceiveTimeout |
接続が非アクティブのままで、アプリケーション メッセージを受信しない間に切断されるまでの時間を取得または設定します。 (継承元 Binding) |
| RetryCycleDelay |
すぐに配信できないメッセージを配信しようとしたときの再試行サイクル間の遅延時間を示す値を取得または設定します。 (継承元 MsmqBindingBase) |
| Scheme |
このバインディングのスキームを返します。 (継承元 MsmqBindingBase) |
| Security |
このバインドに関連付けられている MsmqIntegrationSecurity を取得します。 |
| SendTimeout |
トランスポートで例外が発生するまでの書き込み操作が完了するまでの指定時間を取得または設定します。 (継承元 Binding) |
| SerializationFormat |
メッセージのシリアル化または逆シリアル化に使用するシリアル化形式を取得または設定します。 |
| TimeToLive |
このバインドによって処理されるメッセージがキューに格納されてから有効期限が切れるまでの期間を示す時間間隔を取得または設定します。 (継承元 MsmqBindingBase) |
| UseMsmqTracing |
このバインディングによって処理されるメッセージをトレースするかどうかを示す値を取得または設定します。 (継承元 MsmqBindingBase) |
| UseSourceJournal |
このバインディングによって処理されるメッセージのコピーをソース ジャーナル キューに格納するかどうかを示す値を取得または設定します。 (継承元 MsmqBindingBase) |
| ValidityDuration |
メッセージが受信コンテキスト機能によってロックされる期間を指定する値を取得または設定します。 (継承元 MsmqBindingBase) |
メソッド
| 名前 | 説明 |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
指定した種類のチャネルを作成し、バインド パラメーターのコレクションで指定された機能を満たすチャネル ファクトリ スタックをクライアント上に構築します。 (継承元 Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
指定した種類のチャネルを作成し、オブジェクト配列で指定された機能を満たすチャネル ファクトリ スタックをクライアント上に構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
指定した種類のチャネルを受け入れ、バインド パラメーターのコレクションで指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(Object[]) |
指定した種類のチャネルを受け入れ、指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
指定した種類のチャネルを受け入れ、指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(Uri, Object[]) |
指定した種類のチャネルを受け入れ、指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
指定した種類のチャネルを受け入れ、指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
指定した種類のチャネルを受け入れ、指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
指定した種類のチャネルを受け入れ、指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
指定した種類のチャネルを受け入れ、指定された機能を満たすチャネル リスナーをサービスに構築します。 (継承元 Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
現在のバインディングが、指定されたバインド パラメーターのコレクションを満たすチャネル ファクトリ スタックをクライアント上に構築できるかどうかを示す値を返します。 (継承元 Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
現在のバインディングが、オブジェクト配列で指定された要件を満たすチャネル ファクトリ スタックをクライアント上に構築できるかどうかを示す値を返します。 (継承元 Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
現在のバインディングが、指定されたバインド パラメーターのコレクションを満たすチャネル リスナー スタックをサービス上に構築できるかどうかを示す値を返します。 (継承元 Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
現在のバインディングが、オブジェクトの配列で指定された条件を満たすチャネル リスナー スタックをサービス上に構築できるかどうかを示す値を返します。 (継承元 Binding) |
| CreateBindingElements() |
基本プロファイル スタック内のバインド要素を返します。 |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetProperty<T>(BindingParameterCollection) |
バインディング スタック内の適切なレイヤーから、要求された型指定されたオブジェクト (存在する場合) を返します。 (継承元 Binding) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ShouldSerializeName() |
バインディングの名前をシリアル化する必要があるかどうかを返します。 (継承元 Binding) |
| ShouldSerializeNamespace() |
バインディングの名前空間をシリアル化する必要があるかどうかを返します。 (継承元 Binding) |
| ShouldSerializeSecurity() |
セキュリティ情報をシリアル化するかどうかを指定する値を取得します。 |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IBindingRuntimePreferences.ReceiveSynchronously |
受信要求をより効率的に同期的または非同期的に処理できるかどうかを示す値を取得します。 (継承元 MsmqBindingBase) |