Dela via


<netNamedPipeBinding>

Definierar en bindning som är säker, tillförlitlig och optimerad för kommunikation mellan datorer. Som standard genererar den en körningskommunikationsstack med WS-ReliableMessaging för tillförlitlighet, transportsäkerhet för överföringssäkerhet, namngivna pipes för meddelandeleverans och binär meddelandekodning.

<Konfiguration>
  <system.serviceModel>
    <Bindningar>
      <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>

Attribut och element

Följande avsnitt beskriver attribut, underordnade element och överordnade element

Attribut

Attribut Beskrivning
closeTimeout Ett TimeSpan värde som anger tidsintervallet för en stängningsåtgärd som ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:01:00.
hostNameComparisonMode Anger det HTTP-värdnamnsjämförelseläge som används för att parsa URI:er. Det här attributet är av typen HostNameComparisonMode, vilket anger om värdnamnet används för att nå tjänsten vid matchning på URI:n. Standardvärdet är StrongWildcard, som ignorerar värdnamnet i matchningen.
maxBufferPoolSize Ett heltal som anger den maximala buffertpoolstorleken för den här bindningen. Standardvärdet är 524 288 byte (512 * 1024). Många delar av Windows Communication Foundation (WCF) använder buffertar. Att skapa och förstöra buffertar varje gång de används är dyrt, och skräpinsamling för buffertar är också dyrt. Med buffertpooler kan du ta en buffert från poolen, använda den och returnera den till poolen när du är klar. Därmed undviks kostnaden för att skapa och förstöra buffertar.
Maxbuffersize Ett positivt heltal som anger den maximala storleken i byte för bufferten som används för att lagra meddelanden i minnet. Om bufferten är full förblir överflödiga data i den underliggande socketen tills bufferten har plats igen. Det här värdet får inte vara mindre än attributet maxReceivedMessageSize . Standardvärdet är 65536. Mer information finns i MaxBufferSize.
Maxconnections Ett heltal som anger det maximala antalet utgående och inkommande anslutningar som tjänsten skapar/accepterar. Inkommande och utgående anslutningar räknas mot en separat gräns som anges av det här attributet.

Inkommande anslutningar som överskrider gränsen placeras i kö tills ett utrymme under gränsen blir tillgängligt.

Utgående anslutningar som överskrider gränsen placeras i kö tills ett utrymme under gränsen blir tillgängligt.

Standardvärdet är 10.
maxReceivedMessageSize Ett positivt heltal som anger den maximala meddelandestorleken i byte, inklusive rubriker, som kan tas emot på en kanal som konfigurerats med den här bindningen. Avsändaren av ett meddelande som överskrider den här gränsen får ett SOAP-fel. Mottagaren släpper meddelandet och skapar en post för händelsen i spårningsloggen. Standardvärdet är 65536.
name En sträng som innehåller bindningens konfigurationsnamn. Det här värdet bör vara unikt eftersom det används som identifiering för bindningen. Från och med .NET Framework 4 krävs inte bindningar och beteenden för att ha ett namn. Mer information om standardkonfiguration och namnlösa bindningar och beteenden finns i Förenklad konfiguration och förenklad konfiguration för WCF-tjänster.
openTimeout Ett TimeSpan värde som anger hur länge en öppen åtgärd ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:01:00.
receiveTimeout Ett TimeSpan värde som anger hur länge en mottagningsåtgärd ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:10:00.
sendTimeout Ett TimeSpan värde som anger hur länge en sändningsåtgärd ska slutföras. Det här värdet ska vara större än eller lika med Zero. Standardvärdet är 00:01:00.
transactionFlow Ett booleskt värde som anger om bindningen stöder flödande WS-transaktioner. Standardvärdet är false.
transactionProtocol Anger vilket transaktionsprotokoll som ska användas med den här bindningen. Giltiga värden är

– OleTransactions
- WS-AtomicTransactionOctober2004

Standardvärdet är OleTransactions. Det här attributet är av typen TransactionProtocol.
transferMode Ett TransferMode värde som anger om meddelanden buffrats eller strömmats eller en begäran eller ett svar.

Underordnade element

Element Beskrivning
<Säkerhet> Definierar säkerhetsinställningarna för bindningen. Det här elementet är av typen NetNamedPipeBindingElement.
<readerQuotas> Definierar begränsningarna för komplexiteten i SOAP-meddelanden som kan bearbetas av slutpunkter som konfigurerats med den här bindningen. Det här elementet är av typen XmlDictionaryReaderQuotasElement.

Överordnade element

Element Beskrivning
<Bindningar> Det här elementet innehåller en samling standard- och anpassade bindningar.

Kommentarer

NetNamedPipeBinding Genererar en körningskommunikationsstack som standard, som använder transportsäkerhet, namngivna pipes för meddelandeleverans och en binär meddelandekodning. Den här bindningen är ett lämpligt WCF-systemval (Windows Communication Foundation) för kommunikation på datorn. Den stöder även transaktioner.

Standardkonfigurationen NetNamedPipeBinding för liknar konfigurationen som tillhandahålls av NetTcpBinding, men det är enklare eftersom WCF-implementeringen endast är avsedd för användning på datorn och därför finns det färre exponerade funktioner. Den mest anmärkningsvärda skillnaden är att inställningen securityMode endast erbjuder None alternativen och Transport . SOAP-säkerhetsstöd är inte ett inkluderat alternativ. Säkerhetsbeteendet kan konfigureras med hjälp av det valfria securityMode attributet.

Exempel

I följande exempel visas netNamedPipeBinding-bindningen, som tillhandahåller kommunikation mellan processer på samma dator. Namngivna rör fungerar inte mellan datorer.

Bindningen anges i konfigurationsfilerna för klienten och tjänsten. Bindningstypen anges i binding -attributet för -elementet <endpoint> . Om du vill konfigurera netNamedPipeBinding-bindningen och ändra några av dess inställningar måste du definiera en bindningskonfiguration. Slutpunkten måste referera till bindningskonfigurationen efter namn med ett bindingConfiguration attribut. I det här exemplet heter bindningskonfigurationen 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>

Se även