Partilhar via


<netNamedPipeBinding>

Define uma ligação que é segura, fiável e otimizada para comunicação entre processos na máquina. Por defeito, gera uma pilha de comunicação em tempo de execução com WS-ReliableMessaging para fiabilidade, segurança de transporte para segurança de transferência, pipes nomeados para entrega de mensagens e codificação binária de mensagens.

<configuração>
   <system.serviceModel>
     <Encadernações>
       <netNamedPipeBinding>

Sintaxe

<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 atributos, elementos filho e elementos pai

Attributes

Attribute Description
closeTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de fechamento. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
Modo de Comparação com NomeAnfitrião Especifica o modo de comparação de nomes de host HTTP usado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome de host é usado para aceder ao serviço quando corresponde no URI. O valor padrão é StrongWildcard, que ignora o nome do host na correspondência.
maxBufferPoolSize Um inteiro que especifica o tamanho máximo do buffer pool para esta ligação. O padrão é 524.288 bytes (512 * 1024). Muitas partes do Windows Communication Foundation (WCF) utilizam buffers. Criar e destruir buffers sempre que são usados é caro, e a recolha de lixo para buffers também é dispendiosa. Com os buffer pools, podes pegar num buffer do pool, usá-lo e devolvê-lo ao pool quando terminares. Assim, evita-se a sobrecarga na criação e destruição de tampões.
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 permanece no socket subjacente até que o buffer volte a ter espaço. Este valor não pode ser inferior ao maxReceivedMessageSize atributo. O padrão é 65536. Para obter mais informações, consulte MaxBufferSize.
maxConexões Um inteiro que especifica o número máximo de ligações de saída e entrada que o serviço irá criar/aceitar. As ligações de entrada e saída são contabilizadas contra um limite separado especificado por este atributo.

As ligações de entrada acima do limite ficam em fila até que fique disponível um espaço abaixo desse limite.

As ligações de saída acima do limite ficam em fila até que fique disponível um espaço abaixo desse limite.

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 num canal configurado com esta ligação. O remetente de uma mensagem que ultrapasse este limite receberá uma falha SOAP. O recetor elimina a mensagem e cria uma entrada do evento no registo de rastreamento. O padrão é 65536.
nome Uma cadeia que contém o nome da configuração da ligação. Este valor deve ser único porque é usado como identificação da ligação. A partir do .NET Framework 4, os bindings e comportamentos não são obrigatórios de ter um nome. Para mais informações sobre configuração padrão e ligações e comportamentos sem nome, consulte Configuração Simplificada e Configuração Simplificada para Serviços WCF.
openTimeout Um TimeSpan valor que especifica o intervalo de tempo previsto para que uma operação aberta seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
receiveTimeout Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de receção. Este valor deve ser maior ou igual a Zero. O padrão é 00:10:00.
enviarTempo de espera Um TimeSpan valor que especifica o intervalo de tempo fornecido para que uma operação de envio seja concluída. Este valor deve ser maior ou igual a Zero. O padrão é 00:01:00.
transactionFlow Um valor booleano que especifica se a ligação suporta transações WS em fluxo. A predefinição é false.
transactionProtocol Especifica o protocolo de transação a ser usado com esta ligação. Os valores válidos são

- OleTransactions
- WS-AtomicTransactionOctober2004

O padrão é o OleTransactions. Este atributo é do tipo TransactionProtocol.
transferMode Um TransferMode valor que especifica se as mensagens são armazenadas em buffer, transmitidas em streaming, ou um pedido ou resposta.

Elementos filho

Elemento Description
<Segurança> Define as definições de segurança para a ligação. Este elemento é do tipo NetNamedPipeBindingElement.
<LeitorQuotas> Define as restrições à complexidade das mensagens SOAP que podem ser processadas pelos endpoints configurados com esta ligação. Este elemento é do tipo XmlDictionaryReaderQuotasElement.

Elementos Principais

Elemento Description
<Encadernações> Este elemento contém uma coleção de encadernações padrão e personalizadas.

Observações

Gera NetNamedPipeBinding por defeito uma pilha de comunicação em tempo de execução, que utiliza segurança de transporte, pipelines nomeados para entrega de mensagens e codificação binária de mensagens. Esta ligação é uma escolha adequada fornecida pelo sistema Windows Communication Foundation (WCF) para comunicação na máquina. Também suporta transações.

A configuração padrão para o NetNamedPipeBinding é semelhante à fornecida pelo NetTcpBinding, mas é mais simples porque a implementação WCF destina-se apenas ao uso na máquina e, consequentemente, há menos funcionalidades expostas. A diferença mais notória é que o securityMode cenário só oferece as opções de None e e (e Transport que se opções). O suporte de segurança SOAP não é uma opção incluída. O comportamento de segurança é configurável usando o atributo opcional securityMode .

Example

O exemplo seguinte demonstra a ligação netNamedPipeBinding, que fornece comunicação entre processos na mesma máquina. Tubos nomeados não funcionam entre máquinas.

A ligação é especificada nos ficheiros de configuração do cliente e do serviço. O tipo de ligação é especificado no binding atributo do <endpoint> elemento. Se quiseres configurar a ligação netNamedPipeBinding e alterar algumas das suas definições, tens de definir uma configuração de binding. O endpoint deve referenciar a configuração de ligação pelo nome com um bindingConfiguration atributo. Neste exemplo, a configuração de ligação é chamada 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>

Consulte também