Sdílet prostřednictvím


<netNamedPipeBinding>

Definuje vazbu, která je zabezpečená, spolehlivá a optimalizovaná pro komunikaci mezi procesy na počítači. Ve výchozím nastavení generuje komunikační zásobník modulu runtime s WS-ReliableMessaging pro spolehlivost, zabezpečení přenosu pro zabezpečení přenosu, pojmenované kanály pro doručování zpráv a kódování binárních zpráv.

<Konfigurace>
  <System.servicemodel>
    <Vazby>
      <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>

Atributy a elementy

Následující části popisují atributy, podřízené elementy a nadřazené prvky.

Atributy

Atribut Popis
closeTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace uzavření. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:01:00.
Hostnamecomparisonmode Určuje režim porovnání názvů hostitelů HTTP, který se používá k analýze identifikátorů URI. Tento atribut je typu HostNameComparisonMode, který označuje, jestli se název hostitele používá k připojení ke službě při porovnávání v identifikátoru URI. Výchozí hodnota je StrongWildcard, která ignoruje název hostitele v shodě.
Maxbufferpoolsize Celé číslo, které určuje maximální velikost fondu vyrovnávacích pamětí pro tuto vazbu. Výchozí hodnota je 524 288 bajtů (512 × 1024). Mnoho částí Windows Communication Foundation (WCF) používá vyrovnávací paměti. Vytváření a ničení vyrovnávacích pamětí při každém jejich použití je nákladné a uvolňování paměti pro vyrovnávací paměti je také nákladné. S fondy vyrovnávacích pamětí můžete z fondu vzít vyrovnávací paměť, použít ji a po dokončení ji vrátit do fondu. Tím se vyhnete režijnímu zatížení při vytváření a ničení vyrovnávacích pamětí.
Maxbuffersize Kladné celé číslo, které určuje maximální velikost vyrovnávací paměti používané k ukládání zpráv v paměti v bajtech. Pokud je vyrovnávací paměť zaplněná, nadbytečná data zůstanou v podkladovém soketu, dokud vyrovnávací paměť nebude znovu prostor. Tato hodnota nemůže být menší než maxReceivedMessageSize atribut. Výchozí hodnota je 65536. Další informace naleznete v tématu MaxBufferSize.
Maxconnections Celé číslo, které určuje maximální počet odchozích a příchozích připojení, která služba vytvoří nebo přijme. Příchozí a odchozí připojení se počítají do samostatného limitu určeného tímto atributem.

Příchozí připojení překračující limit jsou zařazena do fronty, dokud nebude k dispozici prostor pod limitem.

Odchozí připojení překračující limit se zasouvají do fronty, dokud nebude k dispozici prostor pod limitem.

Výchozí hodnota je 10.
Maxreceivedmessagesize Kladné celé číslo, které určuje maximální velikost zprávy v bajtech včetně hlaviček, které lze přijímat v kanálu nakonfigurovaného s touto vazbou. Odesílatel zprávy překračující tento limit obdrží chybu PROTOKOLU SOAP. Příjemce zprávu zahodí a vytvoří záznam události v protokolu trasování. Výchozí hodnota je 65536.
name Řetězec, který obsahuje konfigurační název vazby. Tato hodnota by měla být jedinečná, protože se používá jako identifikace vazby. Počínaje rozhraním .NET Framework 4 není nutné, aby vazby a chování měly název. Další informace o výchozí konfiguraci a beznázvových vazbách a chování najdete v tématu Zjednodušená konfigurace a zjednodušená konfigurace pro služby WCF.
openTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace otevření. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:01:00.
receiveTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace příjmu. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:10:00.
sendTimeout Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace odeslání. Tato hodnota by měla být větší nebo rovna hodnotě Zero. Výchozí hodnota je 00:01:00.
transactionFlow Logická hodnota, která určuje, zda vazba podporuje toky WS-Transactions. Výchozí formát je false.
transactionProtocol Určuje transakční protokol, který se má použít s touto vazbou. Platné hodnoty jsou

- OleTransactions
- WS-AtomicTransactionOctober2004

Výchozí hodnota je OleTransactions. Tento atribut je typu TransactionProtocol.
Transfermode Hodnota TransferMode , která určuje, jestli se zprávy ukládají do vyrovnávací paměti nebo streamují, nebo jestli se jedná o požadavek nebo odpověď.

Podřízené elementy

Element Popis
<Zabezpečení> Definuje nastavení zabezpečení pro vazbu. Tento prvek je typu NetNamedPipeBindingElement.
<readerQuotas> Definuje omezení složitosti zpráv SOAP, které mohou být zpracovány koncovými body nakonfigurovanými pomocí této vazby. Tento prvek je typu XmlDictionaryReaderQuotasElement.

Nadřazené elementy

Element Popis
<Vazby> Tento prvek obsahuje kolekci standardních a vlastních vazeb.

Poznámky

Ve NetNamedPipeBinding výchozím nastavení generuje komunikační zásobník za běhu, který používá zabezpečení přenosu, pojmenované kanály pro doručování zpráv a kódování binární zprávy. Tato vazba je vhodnou volbou systému Windows Communication Foundation (WCF) pro komunikaci na počítači. Podporuje také transakce.

Výchozí konfigurace je NetNamedPipeBinding podobná konfiguraci poskytované NetTcpBindingnástrojem , ale je jednodušší, protože implementace WCF je určena pouze pro použití na počítači, a proto je méně vystavených funkcí. Nejvýznamnější rozdíl spočívá v tom securityMode , že nastavení nabízí None pouze možnosti a Transport . Podpora zabezpečení SOAP není zahrnutá. Chování zabezpečení je možné konfigurovat pomocí volitelného securityMode atributu.

Příklad

Následující příklad ukazuje vazbu netNamedPipeBinding, která poskytuje komunikaci mezi procesy na stejném počítači. Pojmenované kanály nefungují na počítačích.

Vazba je určena v konfiguračních souborech pro klienta a službu. Typ vazby je určen v atributu binding elementu <endpoint> . Pokud chcete nakonfigurovat vazbu netNamedPipeBinding a změnit některá její nastavení, musíte definovat konfiguraci vazby. Koncový bod musí odkazovat na konfiguraci vazby podle názvu s atributem bindingConfiguration . V tomto příkladu má konfigurace vazby název 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>

Viz také