<<netTcpBinding>>

複数コンピューターの通信に適し、セキュリティで保護されて信頼できる最適化されたバインディングを指定します。既定では、信頼のための WS-ReliableMessaging、メッセージ セキュリティと認証用 Windows セキュリティ、メッセージ配信用 TCP、およびバイナリ メッセージ エンコーディングを持つランタイム通信スタックを生成します。

スキーマの階層

<system.serviceModel>
  <bindings>
    <<netTcpBinding>>

構文

<netTcpBinding>
   <binding 
      closeTimeout="TimeSpan"
      hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
      listenBacklog="Integer"
      maxBufferPoolSize="integer"
      maxBufferSize="Integer"
      maxConnections="Integer" 
      maxReceivedMessageSize="Integer"
      name="string"
      openTimeout="TimeSpan"
      portSharingEnabled="Boolean"
      receiveTimeout="TimeSpan"
      sendTimeout="TimeSpan"
      transactionFlow="Boolean" 
      transactionProtocol="OleTransactions/WSAtomicTransactionOctober2004" 
            transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"

      <reliableSession ordered="Boolean"
            inactivityTimeout="TimeSpan"
            enabled="Boolean" />
      <security mode="None/Transport/Message/Both">
            <message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
                defaultProtectionLevel="None/Sign/EncryptAndSign" 
algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
            <transport clientCredentialType="None/Windows/Certificate"
                protectionLevel="None/Sign/EncryptAndSign" />
      </security>
       <readerQuotas             maxArrayLength="Integer"            maxBytesPerRead="Integer"            maxDepth="Integer"             maxNameTableCharCount="Integer"                     maxStringContentLength="Integer" />   </binding>
</netTcpBinding>

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明

closeTimeout

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

hostnameComparisonMode

URI の解析に使用する HTTP ホスト名比較モードを指定します。この属性は HostnameComparisonMode 型で、URI が一致したときにサービスへのアクセスにホスト名を使用するかどうかを指定します。既定値は StrongWildcard で、一致しているホスト名を無視します。

listenBacklog

リスナーで受け入れを待機するチャネルの最大数を指定する正の整数。この制限を超えた接続は、制限内に空きができるまでキューに置かれます。connectionTimeout 属性は、クライアントが接続を待つ時間を制限します。この時間が経過すると接続の例外をスローします。既定値は 10 です。

maxBufferPoolSize

このバインディングに使用するバッファー プール サイズの上限を指定する整数。既定は 512 * 1024 バイトです。Windows Communication Foundation (WCF) では、多くの部分でバッファーを使用します。使用するたびに毎回バッファーを作成および破棄すると負荷が高くなります。バッファーのガベージ コレクションも同様です。バッファー プールを使用すると、バッファーをプールから取得して使用し、作業が終わったらプールに戻すことができます。これで、バッファーの作成と破壊のオーバーヘッドを回避できます。

maxBufferSize

メッセージをメモリに保存するのに使用するバッファーの最大サイズをバイト単位で指定する正の整数。

transferMode 属性が Buffered に等しい場合は、この属性が maxReceivedMessageSize 属性の値と等しくなっている必要があります。

transferMode 属性が Streamed に等しい場合は、この属性が maxReceivedMessageSize 属性の値以下であり、またヘッダーのサイズ以上である必要があります。

既定値は 65536 です。詳細については、「MaxBufferSize」を参照してください。

maxConnections

サービスが作成し受け付ける発信/着信接続数の上限を指定する整数。この属性により指定された別個の制限に対して、着信接続および発信接続がカウントされます。

制限を超える着信接続は、制限内に空きができるまでキューに置かれます。

制限を超える発信接続は、制限内に空きができるまでキューに置かれます。

既定値は 10 です。

maxReceivedMessageSize

このバインディングで構成されるチャネルで受信可能な最大メッセージ サイズ (ヘッダーを含む) をバイト単位で指定する正の整数。この制限を超えるメッセージの送信者が、SOAP エラーを受信します。受信者がメッセージをドロップし、トレース ログにそのイベントのエントリを作成します。既定値は 65536 です。

name

バインディングの構成名を格納する文字列。この値は、バインディングの ID として使用されるため、一意にする必要があります。.NET Framework 4 以降では、バインディングおよび動作に名前を付ける必要はありません。既定の構成、および名前のないバインディングと動作の詳細については、「Simplified Configuration」および「Simplified Configuration for WCF Services」を参照してください。

openTimeout

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

portSharingEnabled

TCP ポート共有をこの接続で有効にするかどうかを指定するブール値。これが false の場合、各バインドは独自の排他ポートを使用します。クライアントには影響しないため、この設定はサービスのみに関連します。

receiveTimeout

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

sendTimeout

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

transactionFlow

バインディングが WS-Transactions のフローをサポートするかどうかを指定するブール値です。既定値は false です。

transactionProtocol

このバインディングで使用されるトランザクション プロトコルを指定します。有効な値は、以下のとおりです。

  • OleTransactions

  • WSAtomicTransactionOctober2004

既定値は OleTransactions です。この属性は TransactionProtocol 型です。

transferMode

メッセージが要求や応答をバッファーするか、ストリーミングするかを指定する TransferMode 値です。

子要素

要素 説明

<netTcpBinding> の <security>

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

<readerQuotas>

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

reliableSession

チャネルのエンドポイント間に信頼できるセッションを確立するかどうかを指定します。

親要素

要素 説明

<bindings>

この要素には、標準バインディングおよびカスタム バインディングのコレクションが保持されます。

解説

このバインディングは、既定ではランタイム通信スタックを生成し、トランスポート セキュリティ、メッセージ配信用 TCP、およびバイナリ メッセージ エンコーディングを使用します。このバインドは、イントラネット上の通信に適した Windows Communication Foundation (WCF) システム標準の選択肢です。

netTcpBinding の既定の構成は、wsHttpBinding が提供する構成よりも高速ですが、これは WCF 対 WCF 間の通信でのみ使用されることを目的としています。このセキュリティ動作は、省略可能な securityMode 属性を使用して構成できます。WS-ReliableMessaging を使用するかどうかは、省略可能な reliableSessionEnabled 属性を使用して構成できます。ただし、信頼できるメッセージングは、既定ではオフです。wsHttpBindingbasicHttpBinding などの HTTP システム指定のバインディングは、既定では設定をオンにするように構成され、netTcpBinding バインディングは、既定では設定をオフにするように構成されているのが一般的であるため、たとえば、いずれかの WS-* 仕様のサポートを得るには、サポートを選択する必要があります。これは、TCP の既定の構成の方が、HTTP バインディング用の既定の構成より、エンドポイント間でのメッセージ交換が高速になることを意味します。

バインディングは、クライアントとサービスの構成ファイルに指定されます。バインディングの種類は、<endpoint> 要素の binding 属性に指定します。netTcpBinding バインディングを構成してその設定の一部を変更する場合は、バインディング構成を定義する必要があります。エンドポイントは、bindingConfiguration 属性を使用してバインディング構成を参照する必要があります。次の例では、バインディング構成を定義します。

<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

<bindings>
  <netTcpBinding>
    <binding 
             closeTimeout="00:01:00"
             openTimeout="00:01:00" 
             receiveTimeout="00:10:00" 
             sendTimeout="00:01:00"
             transactionFlow="false" 
             transferMode="Buffered" 
             transactionProtocol="OleTransactions"
             hostNameComparisonMode="StrongWildcard" 
             listenBacklog="10"
             maxBufferPoolSize="524288" 
             maxBufferSize="65536" 
             maxConnections="10"
             maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32" 
                    maxStringContentLength="8192" 
                    maxArrayLength="16384"
                    maxBytesPerRead="4096" 
                    maxNameTableCharCount="16384" />
      <reliableSession ordered="true" 
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Transport">
        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

参照

リファレンス

NetTcpBinding
NetTcpBindingElement

概念

<binding>

その他のリソース

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