<netNamedPipeBinding><netNamedPipeBinding>

コンピューター上のプロセス間通信に適した、セキュリティで保護された信頼できる最適バインディングを定義します。Defines a binding that is secure, reliable, optimized for on-machine cross process communication. 既定では、信頼のための WS-ReliableMessaging、転送セキュリティ用トランスポート セキュリティ、メッセージ配信用名前付きパイプ、およびバイナリ メッセージ エンコーディングを持つランタイム通信スタックを生成します。By default, it generates a runtime communication stack with WS-ReliableMessaging for reliability, transport security for transfer security, named pipes for message delivery, and binary message encoding.

<system.ServiceModel ><system.ServiceModel>
<bindings><bindings>
<netNamedPipeBinding><netNamedPipeBinding>

構文Syntax

<netNamedPipeBinding>
  <binding closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="Integer"
           maxBufferSize="Integer"
           maxConnections="Integer"
           maxReceivedMessageSize="Integer"
           name="String"
           openTimeout="TimeSpan"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           transactionFlow="Boolean"
           transactionProtocol="OleTransactions/WS-AtomicTransactionOctober2004"
           transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse">
    <security mode="None/Transport">
      <transport protectionLevel="None/Sign/EncryptAndSign" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</netNamedPipeBinding>

属性および要素Attributes and Elements

以降のセクションでは、属性、子要素、および親要素について説明します。The following sections describe attributes, child elements, and parent elements

属性Attributes

属性Attribute 説明Description
closeTimeoutcloseTimeout クローズ操作が完了するまでの期間を指定する TimeSpan 値。A TimeSpan value that specifies the interval of time provided for a close operation to complete. この値は必ず Zero 以上である必要があります。This value should be greater than or equal to Zero. 既定値は 00:01:00 です。The default is 00:01:00.
hostNameComparisonModehostNameComparisonMode URI の解析に使用する HTTP ホスト名比較モードを指定します。Specifies the HTTP hostname comparison mode used to parse URIs. この属性は HostNameComparisonMode 型で、URI が一致したときにサービスへのアクセスにホスト名を使用するかどうかを指定します。This attribute is of type HostNameComparisonMode, which indicates whether the hostname is used to reach the service when matching on the URI. 既定値は StrongWildcard で、一致しているホスト名を無視します。The default value is StrongWildcard, which ignores the hostname in the match.
maxBufferPoolSizemaxBufferPoolSize このバインディングに使用するバッファー プール サイズの上限を指定する整数。An integer that specifies the maximum buffer pool size for this binding. 既定は 524,288 バイト (512 * 1024) です。The default is 524,288 bytes (512 * 1024). Windows Communication Foundation (WCF) では、多くの部分でバッファーを使用します。Many parts of Windows Communication Foundation (WCF) use buffers. 使用するたびに毎回バッファーを作成および破壊すると負荷が高くなります。バッファーのガベージ コレクションも同様です。Creating and destroying buffers each time they are used is expensive, and garbage collection for buffers is also expensive. バッファー プールを使用すると、バッファーをプールから取得して使用し、作業が終わったらプールに戻すことができます。With buffer pools, you can take a buffer from the pool, use it, and return it to the pool once you are done. これで、バッファーの作成と破棄のオーバーヘッドを回避できます。Thus the overhead in creating and destroying buffers is avoided.
maxBufferSizemaxBufferSize メッセージをメモリに保存するのに使用するバッファーの最大サイズをバイト単位で指定する正の整数。A positive integer that specifies the maximum size, in bytes, of the buffer used to store messages in memory. バッファーがいっぱいになると、超過データは、バッファーに空きが出るまで、基になるソケットに残されます。If the buffer is full, excess data remains in the underlying socket until the buffer has room again. この値が maxReceivedMessageSize 属性の値を下回らないようにしてください。This value cannot be less than maxReceivedMessageSize attribute. 既定値は 65536 です。The default is 65536. 詳細については、「 MaxBufferSize 」を参照してください。For more information, see MaxBufferSize.
maxConnectionsmaxConnections サービスが作成し受け付ける発信/着信接続数の上限を指定する整数。An integer that specifies the maximum number of outbound and inbound connections the service will create/accept. この属性により指定された別個の制限に対して、着信接続および発信接続がカウントされます。Incoming and outgoing connections are counted against a separate limit specified by this attribute.

制限を超える着信接続は、制限内に空きができるまでキューに置かれます。Inbound connections in excess of the limit are queued until a space below the limit becomes available.

制限を超える発信接続は、制限内に空きができるまでキューに置かれます。Outbound connections in excess of the limit are queued until a space below the limit becomes available.

既定値は 10 です。The default is 10.
maxReceivedMessageSizemaxReceivedMessageSize このバインディングで構成されるチャネルで受信可能な最大メッセージ サイズ (ヘッダーを含む) をバイト単位で指定する正の整数。A positive integer that specifies the maximum message size, in bytes, including headers, that can be received on a channel configured with this binding. この制限を超えるメッセージの送信者が、SOAP エラーを受信します。The sender of a message exceeding this limit will receive a SOAP fault. メッセージは受信者によって破棄され、トレース ログにこのイベントのエントリが作成されます。The receiver drops the message and creates an entry of the event in the trace log. 既定値は 65536 です。The default is 65536.
namename バインディングの構成名を格納する文字列です。A string that contains the configuration name of the binding. この値は、バインディングの ID として使用されるため、一意にする必要があります。This value should be unique because it is used as an identification for the binding. .NET Framework 4.NET Framework 4 以降では、バインディングおよび動作に名前を付ける必要はありません。Starting with .NET Framework 4.NET Framework 4, bindings and behaviors are not required to have a name. 既定の構成と無名のバインディングおよび動作の詳細については、「簡略化された構成」と「WCF サービスの構成を簡略化」を参照してください。For more information about default configuration and nameless bindings and behaviors, see Simplified Configuration and Simplified Configuration for WCF Services.
openTimeoutopenTimeout 実行中の操作が完了するまでの時間間隔を指定する TimeSpan 値です。A TimeSpan value that specifies the interval of time provided for an open operation to complete. この値は必ず Zero 以上である必要があります。This value should be greater than or equal to Zero. 既定値は 00:01:00 です。The default is 00:01:00.
receiveTimeoutreceiveTimeout 受信操作が完了するまでの時間間隔を指定する TimeSpan 値です。A TimeSpan value that specifies the interval of time provided for a receive operation to complete. この値は必ず Zero 以上である必要があります。This value should be greater than or equal to Zero. 既定値は 00:10:00 です。The default is 00:10:00.
sendTimeoutsendTimeout 送信操作が完了するまでの時間間隔を指定する TimeSpan 値です。A TimeSpan value that specifies the interval of time provided for a send operation to complete. この値は必ず Zero 以上である必要があります。This value should be greater than or equal to Zero. 既定値は 00:01:00 です。The default is 00:01:00.
transactionFlowtransactionFlow バインディングが WS-Transactions のフローをサポートするかどうかを指定するブール値です。A Boolean value that specifies whether the binding supports flowing WS-Transactions. 既定値は false です。The default is false.
transactionProtocoltransactionProtocol このバインディングで使用されるトランザクション プロトコルを指定します。Specifies the transaction protocol to be used with this binding. 有効な値は、次のとおりです。Valid values are

-OleTransactions- OleTransactions
- WS-AtomicTransactionOctober2004- WS-AtomicTransactionOctober2004

既定値は OleTransactions です。The default is OleTransactions. この属性は TransactionProtocol 型です。This attribute is of type TransactionProtocol.
transferModetransferMode メッセージが要求や応答をバッファーするか、ストリーミングするかを指定する TransferMode 値です。A TransferMode value that specifies whether messages are buffered or streamed or a request or response.

子要素Child Elements

要素Element 説明Description
<security><security> バインディングのセキュリティ設定を定義します。Defines the security settings for the binding. この要素は NetNamedPipeBindingElement 型です。This element is of type NetNamedPipeBindingElement.
<readerQuotas><readerQuotas> このバインドを使用して設定されるエンドポイントにより処理可能な、SOAP メッセージの複雑さに対する制約を定義します。Defines the constraints on the complexity of SOAP messages that can be processed by endpoints configured with this binding. この要素は XmlDictionaryReaderQuotasElement 型です。This element is of type XmlDictionaryReaderQuotasElement.

親要素Parent Elements

要素Element 説明Description
<bindings><bindings> この要素には、標準バインディングおよびカスタム バインドのコレクションが保持されます。This element holds a collection of standard and custom bindings.

RemarksRemarks

NetNamedPipeBinding は、トランスポート セキュリティ、メッセージ配信用の名前付きパイプ、およびバイナリ メッセージ エンコーディングを使用するランタイム通信スタックを既定で生成します。The NetNamedPipeBinding generates a run-time communication stack by default, which uses transport security, named pipes for message delivery, and a binary message encoding. このバインディングは、コンピューター間通信に適した、WCF (Windows Communication Foundation) システム標準の選択肢です。This binding is an appropriate Windows Communication Foundation (WCF) system-provided choice for on-machine communication. トランザクションもサポートします。It also supports transactions.

NetNamedPipeBinding の既定の構成は、NetTcpBinding によって提供される構成に似ていますが、それよりも単純です。この理由は、WCF の実装はコンピューター間での使用のみを目的としているので、公開される機能が少ないためです。The default configuration for the NetNamedPipeBinding is similar to the configuration provided by the NetTcpBinding, but it is simpler because the WCF implementation is only meant for on-machine use and consequently there are fewer exposed features. 最も顕著な違いは、securityMode 設定に None オプションと Transport オプションしか用意されていないことです。The most notable difference is that the securityMode setting only offers the None and Transport options. SOAP セキュリティ サポートは、オプションに含まれません。SOAP security support is not an included option. このセキュリティ動作は、省略可能な securityMode 属性を使用して構成できます。The security behavior is configurable using the optional securityMode attribute.

Example

次の例では、同じコンピューター上でのプロセス間通信を実現する NetNamedPipeBinding バインディングを示します。The following example demonstrates the netNamedPipeBinding binding, which provides cross-process communication on the same machine. 名前付きパイプは、異なるコンピューター間では動作しません。Named pipes do not work across machines.

バインディングは、クライアントとサービスの構成ファイルに指定されます。The binding is specified in the configuration files for the client and service. バインディングの種類は、binding 要素の <endpoint> 属性に指定します。The binding type is specified in the binding attribute of the <endpoint> element. netNamedPipeBinding バインディングを構成してその設定の一部を変更する場合は、バインド構成を定義する必要があります。If you want to configure the netNamedPipeBinding binding and change some of its settings, you must define a binding configuration. エンドポイントは、バインディング構成を bindingConfiguration 属性を使用して名前で参照します。The endpoint must reference the binding configuration by name with a bindingConfiguration attribute. この例では、バインディングの構成の名前は Binding1 です。In this example, the binding configuration is named Binding1.

<configuration>
  <system.serviceModel>
    <services>
      <service name="Microsoft.ServiceModel.Samples.CalculatorService"
               behaviorConfiguration="CalculatorServiceBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
          </baseAddresses>
        </host>
        <!-- this endpoint is exposed at the base address provided by host: net.pipe://localhost/ServiceModelSamples/service  -->
        <endpoint address="net.pipe://localhost/ServiceModelSamples/service"
                  binding="netNamedPipeBinding"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
    <bindings>
      <netNamedPipeBinding>
        <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"
                 maxBufferPoolSize="524288"
                 maxBufferSize="65536"
                 maxConnections="10"
                 maxReceivedMessageSize="65536">
          <security mode="Transport">
            <transport protectionLevel="EncryptAndSign" />
          </security>
        </binding>
      </netNamedPipeBinding>
    </bindings>
    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata httpGetEnabled="True" />
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

関連項目See also