Compartilhar via


<netNamedPipeBinding>

Define uma associação segura, confiável e otimizada para comunicação entre processos no computador. Por padrão, gera uma pilha de comunicação de runtime com WS-ReliableMessaging para obter confiabilidade, segurança de transporte para segurança de transferência, pipes nomeados para entrega de mensagens e codificação de mensagens binárias.

<configuration>
  <system.serviceModel>
    <bindings>
      <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>

Atributos e elementos

As seções a seguir descrevem os atributos, os elementos filho e os elementos pai

Atributos

Atributo Descrição
closeTimeout Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de fechamento. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00.
hostNameComparisonMode Especifica o modo de comparação de nome do host HTTP usado para analisar URIs. Esse atributo é do tipo HostNameComparisonMode, o que indica se o nome do host é usado para acessar o serviço ao fazer correspondência no URI. O valor padrão é StrongWildcard, o que ignora o nome do host na correspondência.
maxBufferPoolSize Um inteiro que especifica o tamanho máximo do pool de buffers para essa associação. O padrão é 524.288 bytes (512 * 1024). Muitas partes do WCF (Windows Communication Foundation) usam buffers. Criar e destruir buffers cada vez que eles são usados é caro, e a coleta de lixo para buffers também é cara. Com os pools de buffers, você pode pegar um buffer do pool, usá-lo e devolvê-lo ao pool assim que terminar. Portanto, a sobrecarga na criação e na destruição de buffers é evitada.
maxBufferSize Um inteiro positivo que especifica o tamanho máximo, em bytes, do buffer usado para armazenar mensagens na memória. Se o buffer estiver cheio, o excesso de dados permanecerá no soquete subjacente até que o buffer tenha espaço novamente. Esse valor não pode ser menor que o maxReceivedMessageSize atributo. O padrão é 65536. Para obter mais informações, consulte MaxBufferSize.
maxConnections Um inteiro que especifica o número máximo de conexões de saída e de entrada que o serviço criará/aceitará. As conexões de entrada e saída são contadas em relação a um limite separado especificado por esse atributo.

As conexões de entrada acima do limite serão colocadas na fila até que um espaço abaixo do limite fique disponível.

As conexões de saída acima do limite serão colocadas na fila até que um espaço abaixo do limite fique disponível.

O padrão é 10.
maxReceivedMessageSize Um inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido em um canal configurado com essa associação. O remetente de uma mensagem que exceder esse limite receberá uma falha SOAP. O receptor remove a mensagem e cria uma entrada do evento no log de rastreamento. O padrão é 65536.
name Uma cadeia de caracteres que contém o nome de configuração da associação. Esse valor deve ser exclusivo, pois é usado como uma identificação para a associação. A partir do .NET Framework 4, associações e comportamentos não precisam ter um nome. Para obter mais informações sobre a configuração padrão e as associações sem nome, incluindo os comportamentos, confira Configuração Simplificada e Configuração Simplificada para Serviços WCF.
openTimeout Um valor TimeSpan que especifica o intervalo de tempo fornecido para a conclusão de uma operação de abertura. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00.
receiveTimeout Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de recebimento. Esse valor deve ser igual ou superior a Zero. O padrão é 00:10:00.
sendTimeout Um valor TimeSpan que especifica o intervalo de tempo para a conclusão de uma operação de envio. Esse valor deve ser igual ou superior a Zero. O padrão é 00:01:00.
transactionFlow Um valor booliano que especifica se a associação dá suporte ao fluxo de WS-Transactions. O padrão é false.
transactionProtocol Especifica o protocolo de transação a ser usado com essa associação. Os valores válidos são

- OleTransactions
- WS-AtomicTransactionOctober2004

O padrão é OleTransactions. Esse atributo é do tipo TransactionProtocol.
transferMode Um valor TransferMode que especifica se as mensagens são armazenadas em buffer ou transmitidas por streaming ou uma solicitação ou resposta.

Elementos filho

Elemento Descrição
<security> Define as configurações de segurança da associação. Esse elemento é do tipo NetNamedPipeBindingElement.
<readerQuotas> Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas pelos pontos de extremidade configurados com essa associação. Esse elemento é do tipo XmlDictionaryReaderQuotasElement.

Elementos pai

Elemento Descrição
<bindings> Esse elemento contém uma coleção de associações padrão e personalizadas.

Comentários

A NetNamedPipeBinding gera uma pilha de comunicação em tempo de execução por padrão, que usa segurança de transporte, pipes nomeados para entrega de mensagens e uma codificação de mensagem binária. Essa associação é uma opção apropriada fornecida pelo sistema do WCF (Windows Communication Foundation) para comunicação no computador. Ela também permite transações.

A configuração padrão para o NetNamedPipeBinding é semelhante à configuração fornecida pelo NetTcpBinding, mas é mais simples porque a implementação do WCF destina-se apenas ao uso no computador e, consequentemente, há menos recursos expostos. A diferença mais notável é que a configuração securityMode oferece apenas as opções None e Transport. O suporte à segurança SOAP não é uma opção incluída. O comportamento de segurança é configurável usando o atributo opcional securityMode.

Exemplo

O exemplo a seguir demonstra a associação netNamedPipeBinding, que fornece comunicação entre processos no mesmo computador. Pipes nomeados não funcionam entre computadores.

A associação é especificada nos arquivos de configuração para o cliente e o serviço. O tipo de associação é especificado no atributo binding do elemento <endpoint>. Se você quiser configurar a associação netNamedPipeBinding e alterar algumas das suas configurações, você precisará definir uma configuração de associação. O ponto de extremidade precisa fazer referência à configuração de associação por nome com um atributo bindingConfiguration. Neste exemplo, a configuração de associação se chama 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>

Confira também