次の方法で共有


<netTcpBinding>

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

configuration
  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"
               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 以降では、バインディングおよび動作に名前を付ける必要はありません。 既定の構成と、名前のないバインディングと動作については、「簡略化された構成」と「WCF サービスの簡略化された構成」を参照してください。
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 値です。

子要素

要素 説明
<security> バインディングのセキュリティ設定を定義します。 この要素は NetTcpSecurityElement 型です。
<readerQuotas> このバインドを使用して設定されるエンドポイントにより処理可能な、SOAP メッセージの複雑さに対する制約を定義します。 この要素は XmlDictionaryReaderQuotasElement 型です。
<reliableSession> チャネルのエンドポイント間に信頼できるセッションを確立するかどうかを指定します。

親要素

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

解説

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

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

バインディングは、クライアントとサービスの構成ファイルに指定されます。 バインディングの種類は、binding 要素の <endpoint> 属性に指定します。 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>

関連項目