<netNamedPipeBinding>
Define um enlace seguro, fiável e otimizado para comunicação entre processos no computador. Por predefinição, gera uma pilha de comunicação de runtime com WS-ReliableMessaging para fiabilidade, segurança de transporte para segurança de transferência, pipes nomeados para entrega de mensagens e codificação de mensagens binárias.
<configuração>
<system.serviceModel>
<enlaces>
<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 secções seguintes descrevem atributos, elementos subordinados e elementos principais
Atributos
Atributo | Descrição |
---|---|
closeTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de fecho. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
hostNameComparisonMode | Especifica o modo de comparação de nomes de anfitrião HTTP utilizado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome do anfitrião é utilizado para aceder ao serviço quando corresponde ao URI. O valor predefinido é StrongWildcard, que ignora o nome do anfitrião na correspondência. |
maxBufferPoolSize | Um número inteiro que especifica o tamanho máximo do conjunto de memória intermédia para este enlace. A predefinição é 524.288 bytes (512 * 1024). Muitas partes do Windows Communication Foundation (WCF) utilizam memórias intermédias. A criação e destruição de memórias intermédias sempre que são utilizadas é dispendiosa e a libertação da memória intermédia também é dispendiosa. Com os conjuntos de memória intermédia, pode tirar uma memória intermédia do conjunto, utilizá-la e devolvê-la ao conjunto assim que terminar. Assim, evita-se a sobrecarga na criação e destruição de memórias intermédias. |
maxBufferSize | Um número inteiro positivo que especifica o tamanho máximo, em bytes, da memória intermédia utilizada para armazenar mensagens na memória. Se a memória intermédia estiver cheia, os dados em excesso permanecerão no socket subjacente até que a memória intermédia tenha espaço novamente. Este valor não pode ser inferior ao maxReceivedMessageSize atributo . A predefinição é 65536. Para obter mais informações, consulte MaxBufferSize. |
maxConnections | Um número inteiro que especifica o número máximo de ligações de saída e de entrada que o serviço irá criar/aceitar. As ligações de entrada e saída são contabilizadas com base num limite separado especificado por este atributo. As ligações de entrada que excedam o limite são em fila de espera até ficar disponível um espaço abaixo do limite. As ligações de saída que excedam o limite são em fila de espera até que um espaço abaixo do limite fique disponível. A predefinição é 10. |
maxReceivedMessageSize | Um número inteiro positivo que especifica o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, que pode ser recebido num canal configurado com este enlace. O remetente de uma mensagem que excede este limite receberá uma falha SOAP. O recetor remove a mensagem e cria uma entrada do evento no registo de rastreio. A predefinição é 65536. |
name | Uma cadeia que contém o nome de configuração do enlace. Este valor deve ser exclusivo porque é utilizado como uma identificação para o enlace. A partir do .NET Framework 4, os enlaces e comportamentos não têm de ter um nome. Para obter mais informações sobre a configuração predefinida e os enlaces e comportamentos sem nome, veja Configuração Simplificada e Configuração Simplificada para os Serviços WCF. |
openTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação aberta. Este valor deve ser maior ou igual a Zero. A predefiniçã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. A predefinição é 00:10:00. |
sendTimeout | Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de envio. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
transactionFlow | Um valor booleano que especifica se o enlace suporta WS-Transactions em fluxo. A predefinição é false . |
transactionProtocol | Especifica o protocolo de transação a utilizar com este enlace. Os valores válidos são - OleTransactions - WS-AtomicTransactionOctober2004 A predefinição é OleTransactions. Este atributo é do tipo TransactionProtocol. |
transferMode | Um TransferMode valor que especifica se as mensagens são transmitidas em memória intermédia ou transmitidas em fluxo ou um pedido ou resposta. |
Elementos Subordinados
Elemento | Descrição |
---|---|
<segurança> | Define as definições de segurança do enlace. Este elemento é do tipo NetNamedPipeBindingElement. |
<readerQuotas> | Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos finais configurados com este enlace. Este elemento é do tipo XmlDictionaryReaderQuotasElement. |
Elementos Principais
Elemento | Descrição |
---|---|
<enlaces> | Este elemento contém uma coleção de enlaces padrão e personalizados. |
Observações
O NetNamedPipeBinding
gera uma pilha de comunicação de tempo de execução por predefinição, que utiliza segurança de transporte, pipes nomeados para entrega de mensagens e uma codificação de mensagens binárias. Este enlace é uma opção adequada fornecida pelo sistema do Windows Communication Foundation (WCF) para a comunicação no computador. Também suporta transações.
A configuração predefinida para o NetNamedPipeBinding
é semelhante à configuração fornecida pelo NetTcpBinding
, mas é mais simples porque a implementação do WCF destina-se apenas à utilização no computador e, consequentemente, existem menos funcionalidades expostas. A diferença mais notável é que a securityMode
definição oferece apenas as None
opções e Transport
. O suporte de segurança SOAP não é uma opção incluída. O comportamento de segurança é configurável com o atributo opcional securityMode
.
Exemplo
O exemplo seguinte demonstra o enlace netNamedPipeBinding, que fornece comunicação entre processos no mesmo computador. Os pipes nomeados não funcionam em computadores.
O enlace é especificado nos ficheiros de configuração do cliente e do serviço. O tipo de enlace é especificado no binding
atributo do <endpoint>
elemento . Se quiser configurar o enlace netNamedPipeBinding e alterar algumas das respetivas definições, tem de definir uma configuração de enlace. O ponto final tem de referenciar a configuração de enlace por nome com um bindingConfiguration
atributo. Neste exemplo, a configuração de enlace chama-se Enlace1.
<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>