<netMsmqBinding>

複数コンピュータの通信に適しているキューに置かれたバインディングを定義します。

<system.serviceModel>
  <bindings>
    <netMsmqBinding>

<netMsmqBinding>
    <binding 
       closeTimeout="TimeSpan" 
       customDeadLetterQueue="Uri"
       deadLetterQueue="Uri"
       durable="Boolean"
       exactlyOnce="Boolean" 
       maxBufferPoolSize="Integer"
       maxReceivedMessageSize"Integer"
       maxRetryCycles="Integer" 
       name="string" 
       openTimeout="TimeSpan" 
       poisonMessageHandling="Disabled/EnabledIfSupported" 
       queueTransferProtocol="Native/Srmp/SrmpSecure"
       receiveErrorHandling="Drop/Fault/Move/Reject"
       receiveTimeout="TimeSpan" 
       receiveRetryCount="Integer"
       rejectAfterLastRetry="Boolean" 
       retryCycleDelay="TimeSpan"  
       sendTimeout="TimeSpan" 
       timeToLive="TimeSpan"  
       useActiveDirectory="Boolean"
       useMsmqTracing="Boolean
       useSourceJournal="Boolean"
          <security>
                  <message  
                        algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
            clientCredentialType="None/Windows/UserName/Certificate/InfoCard "/>
                  <transport msmqAuthenticationMode="None/WindowsDomain/Certificate"
            msmqEncryptionAlgorithm="RC4Stream/AES"
            msmqProtectionLevel="None/Sign/EncryptAndSign"
            msmqSecureHashAlgorithm="MD5/SHA1/SHA256/SHA512" />
          </security>
         <readerQuotas maxDepth="integer" 
               maxStringContentLength="integer"
              maxByteArrayContentLength="integer"
              maxBytesPerRead="integer"
               maxNameTableCharCount="integer" />
</netMsmqBinding>

属性および要素

属性

属性 説明

closeTimeout

クローズ操作が完了するまでの期間を指定する TimeSpan 値。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。

customDeadLetterQueue

アプリケーションごとの配信不能キューの場所が含まれている URI です。ここには、期限切れのメッセージや、転送または配信に失敗したメッセージが配置されます。

配信不能キューは、送信元アプリケーションのキュー マネージャにある、配信に失敗した期限切れメッセージのキューです。

CustomDeadLetterQueue によって指定される URI は、net.msmq スキームを使用する必要があります。

deadLetterQueue

使用する配信不能キューがある場合にその種類を指定する DeadLetterQueue 値。

配信不能キューは、アプリケーションへの配信に失敗したメッセージが転送される場所です。

exactlyOnce 保証が必要なメッセージ (つまり、exactlyOnce 属性が true に設定される) の場合、この属性は、既定で MSMQ のトランザクション システム全体の配信不能キューになります。

保証が必要ないメッセージの場合、この属性の既定値は null です。

durable

メッセージがキューで非揮発性か揮発性かを示すブール値です。非揮発性メッセージは、キュー マネージャがクラッシュしても残り、揮発性メッセージは失われます。アプリケーションで待ち時間の短縮が要求され、場合によってはメッセージが失われてもかまわない場合は、揮発性メッセージが適しています。exactlyOnce 属性が true に設定されている場合、メッセージは非揮発性にする必要があります。既定値は true です。

exactlyOnce

このバインディングで処理される各メッセージが 1 回だけ受信されるかどうかを示すブール値です。その後、送信側に配信エラーが通知されます。durablefalse の場合、この属性は無視されて、配信が保証されずにメッセージが転送されます。既定値は true です。詳細については、ExactlyOnce を参照してください。

maxBufferPoolSize

このバインディングに使用するバッファ プール サイズの上限を指定する整数。既定値は 8 です。

maxReceivedMessageSize

このバインディングにより処理される最大メッセージ サイズ (ヘッダーを含む) をバイト単位で定義する正の整数です。この制限を超えるメッセージの送信者が、SOAP エラーを受信します。受信者がメッセージをドロップし、トレース ログにそのイベントのエントリを作成します。既定値は 65536 です。制限されたこのメッセージ サイズは、サービス拒否 (DoS) 攻撃を受けないようにするためのものです。

maxRetryCycles

有害メッセージ検出機能により使用される再試行サイクルの回数を示す整数です。すべてのサイクルの配信試行にすべて失敗すると、メッセージは有害メッセージになります。既定は 3 です。詳細については、MaxRetryCycles を参照してください。

name

必須属性。バインディングの設定名を格納する文字列です。この値は、バインディングの ID として使用されるため、一意にする必要があります。

openTimeout

実行中の操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。

QueueTransferProtocol

このバインディングが使用するキューに置かれた通信チャネルのトランスポートを指定する有効な QueueTransferProtocol 値。MSMQ は、SOAP リライアブル メッセージ プロトコルを使用する場合は Active Directory アドレス指定をサポートしません。したがって、useActiveDirectory 属性が true に設定されている場合は、この属性を Srmp or Srmps に設定しないでください。

receiveErrorHandling

有害メッセージおよびディスパッチ不能メッセージの処理方法を指定する ReceiveErrorHandling 値。

receiveRetryCount

キュー マネージャがメッセージを再試行キューに転送する前にメッセージ送信を試行する最大回数を指定する整数。

receiveTimeout

受信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:10:00 です。

retryCycleDelay

すぐに配信できなかったメッセージを配信しようとするときの、再試行サイクルの時間遅延を指定する TimeSpan 値です。実際の待機時間はさらに長くなる場合があるため、この値で定義されるのは最小待機時間だけです。既定値は、00:10:00 です。詳細については、「RetryCycleDelay」を参照してください。

sendTimeout

送信操作が完了するまでの時間間隔を指定する TimeSpan 値です。この値は必ず Zero 以上である必要があります。既定値は 00:01:00 です。

timeToLive

メッセージの期限が切れて、配信不能キューに入れられるまでのメッセージの有効期間を指定する TimeSpan 値です。既定値は 1.00:00:00 です。

この属性を設定すると、タイムリーなメッセージが受信側アプリケーションで処理される前に古くなることがなくなります。キュー内のメッセージのうち、指定された期間内に受信アプリケーションで処理されなかったメッセージは、期限切れと呼ばれます。期限切れのメッセージは、配信不能キューと呼ばれる特別なキューに送信されます。配信不能キューの場所は、保証の内容に基づいて、DeadLetterQueue 属性を使用して設定されるか、適切な既定値に設定されます。

usingActiveDirectory

キューのアドレスを Active Directory を使用して変換する必要があるかどうかを指定するブール値。

MSMQ キューのアドレスは、パス名または直接形式名で構成できます。直接形式名を使用する場合、MSMQ は、DNS、NetBIOS、または IP を使用してコンピュータ名を解決します。パス名を使用する場合、MSMQ は、Active Directory を使用してコンピュータ名を解決します。

既定では、Windows Communication Foundation (WCF) キューに置かれているトランスポートは、メッセージ キューの URI を直接形式名に変換します。UseActiveDirectory プロパティを true に設定すると、キューに置かれているトランスポートが DNS、NetBIOS、または IP ではなく Active Directory を使用してコンピュータ名を解決する必要があることを、アプリケーションで指定できます。

useMsmqTracing

このバインディングにより処理されるメッセージをトレースするかどうかを指定するブール値です。既定値は false です。トレースが有効な場合、メッセージ キュー コンピュータでメッセージが送受信されるたびに、レポート メッセージが作成され、レポート キューに送信されます。

useSourceJournal

このバインディングにより処理されるメッセージのコピーをソース ジャーナルに保存するかどうかを指定するブール値です。既定値は false です。

キューに置かれたアプリケーションでは、コンピュータの発信キューから送信されたメッセージの記録を残す場合は、メッセージをジャーナル キューにコピーできます。メッセージが発信キューから送信され、送信先のコンピュータで受信されたという応答を受け取ると、メッセージのコピーが送信元のコンピュータのシステム ジャーナル キューに保持されます。

子要素

要素 説明

<readerQuotas>

このバインディングを使用して設定されるエンドポイントにより処理可能な、SOAP メッセージの複雑さに対する制約を定義します。この要素は XmlDictionaryReaderQuotasElement 型です。

<netMsmqBinding> の <security>

バインディングのセキュリティ設定を定義します。この要素は NetMsmqSecurityElement 型です。

親要素

要素 説明

<bindings>

この要素には、標準バインディングおよびカスタム バインディングのコレクションが保持されます。各エントリは、それぞれの name によって識別されます。サービスは、name を使用してバインディングをリンクすることにより、バインディングを使用します。

解説

netMsmqBinding バインディングは、Microsoft Message Queuing (MSMQ) をトランスポートとして使用したキューのサポートを提供し、疎結合アプリケーション、失敗の切り分け、読み込みの均一化、および切断操作のサポートを有効にします。これらの機能の詳細については、「Queues in WCF」を参照してください。

<configuration>
<system.ServiceModel>
    <bindings>
           <netMsmqBinding>
                <binding name="test"
                         closeTimeout="00:00:10" 
                         openTimeout="00:00:20" 
                         receiveTimeout="00:00:30"
                         sendTimeout="00:00:40"
                         deadLetterQueue="net.msmq://localhost/blah" 
                         durable="true" 
                         exactlyOnce="true" 
                         maxMessageSize="1000"
                         maxRetries="11"
                         maxRetryCycles="12" 
                         poisonMessageHandling="Disabled" 
                         rejectAfterLastRetry="false" 
                         retryCycleDelay="00:05:55" 
                         timeToLive="00:11:11" 
                         sourceJournal="true"
                         useMsmqTracing="true"
                         useActiveDirectory="true">
                         <security>
                             <message clientCredentialType="Windows" />
                         </security>
            </netMsmqBinding>
    </bindings>
</system.ServiceModel>
</configuration>

関連項目

リファレンス

NetMsmqBinding
NetMsmqBindingElement

概念

<binding>

その他の技術情報

Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients
Queues in WCF