Delen via


<netNamedPipeBinding>

Definieert een binding die veilig, betrouwbaar en geoptimaliseerd is voor communicatie tussen processen op de machine. Standaard wordt er een runtimecommunicatiestack gegenereerd met WS-ReliableMessaging voor betrouwbaarheid, transportbeveiliging voor overdrachtsbeveiliging, named pipes voor berichtbezorging en binaire berichtcodering.

<Configuratie>
  <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>

Kenmerken en elementen

In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven

Kenmerken

Kenmerk Beschrijving
closeTimeout Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een close-bewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
hostNameComparisonMode Hiermee geeft u de http-hostnaamvergelijkingsmodus op die wordt gebruikt voor het parseren van URI's. Dit kenmerk is van het type HostNameComparisonMode, dat aangeeft of de hostnaam wordt gebruikt om de service te bereiken bij het vergelijken op de URI. De standaardwaarde is StrongWildcard, waarmee de hostnaam in de overeenkomst wordt genegeerd.
maxBufferPoolSize Een geheel getal dat de maximale grootte van de buffergroep voor deze binding aangeeft. De standaardwaarde is 524.288 bytes (512 * 1024). Veel onderdelen van Windows Communication Foundation (WCF) maken gebruik van buffers. Het maken en vernietigen van buffers elke keer dat ze worden gebruikt, is duur en garbagecollection voor buffers is ook duur. Met bufferpools kunt u een buffer uit de pool nemen, deze gebruiken en teruggaan naar de pool wanneer u klaar bent. Zo wordt de overhead bij het maken en vernietigen van buffers vermeden.
Maxbuffersize Een positief geheel getal dat de maximale grootte, in bytes, aangeeft van de buffer die wordt gebruikt voor het opslaan van berichten in het geheugen. Als de buffer vol is, blijven overtollige gegevens in de onderliggende socket totdat de buffer weer ruimte heeft. Deze waarde mag niet kleiner zijn dan maxReceivedMessageSize kenmerk. De standaardwaarde is 65536. Voor meer informatie raadpleegt u MaxBufferSize.
maxConnections Een geheel getal dat het maximum aantal uitgaande en binnenkomende verbindingen aangeeft dat de service maakt/accepteert. Binnenkomende en uitgaande verbindingen worden geteld voor een afzonderlijke limiet die is opgegeven door dit kenmerk.

Binnenkomende verbindingen die de limiet overschrijden, worden in de wachtrij geplaatst totdat een ruimte onder de limiet beschikbaar is.

Uitgaande verbindingen die de limiet overschrijden, worden in de wachtrij geplaatst totdat een ruimte onder de limiet beschikbaar is.

De standaardwaarde is 10.
maxReceivedMessageSize Een positief geheel getal dat de maximale berichtgrootte aangeeft, in bytes, inclusief headers, die kunnen worden ontvangen op een kanaal dat is geconfigureerd met deze binding. De afzender van een bericht dat deze limiet overschrijdt, ontvangt een SOAP-fout. De ontvanger verwijdert het bericht en maakt een vermelding van de gebeurtenis in het traceringslogboek. De standaardwaarde is 65536.
naam Een tekenreeks die de configuratienaam van de binding bevat. Deze waarde moet uniek zijn omdat deze wordt gebruikt als identificatie voor de binding. Vanaf .NET Framework 4 zijn bindingen en gedrag niet vereist om een naam te hebben. Zie Vereenvoudigde configuratie en Vereenvoudigde configuratie voor WCF-services voor meer informatie over standaardconfiguratie en naamloze bindingen en gedrag.
openTimeout Een TimeSpan waarde die het tijdsinterval aangeeft dat een open bewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
receiveTimeout Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een ontvangstbewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:10:00.
sendTimeout Een TimeSpan waarde die het tijdsinterval aangeeft dat een verzendbewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
transactionFlow Een Booleaanse waarde die aangeeft of de binding stromende WS-transactions ondersteunt. De standaardwaarde is false.
transactionProtocol Hiermee geeft u het transactieprotocol moet worden gebruikt met deze binding. Geldige waarden zijn

- OleTransactions
- WS-AtomicTransactionOctober2004

De standaardwaarde is OleTransactions. Dit kenmerk is van het type TransactionProtocol.
transferMode Een TransferMode waarde die aangeeft of berichten worden gebufferd of gestreamd, of een aanvraag of antwoord.

Onderliggende elementen

Element Beschrijving
<Veiligheid> Definieert de beveiligingsinstellingen voor de binding. Dit element is van het type NetNamedPipeBindingElement.
<lezerQuota's> Definieert de beperkingen voor de complexiteit van SOAP-berichten die kunnen worden verwerkt door eindpunten die met deze binding zijn geconfigureerd. Dit element is van het type XmlDictionaryReaderQuotasElement.

Bovenliggende elementen

Element Beschrijving
<Bindings> Dit element bevat een verzameling standaard- en aangepaste bindingen.

Opmerkingen

De NetNamedPipeBinding genereert standaard een runtime communicatiestack, die gebruikmaakt van transportbeveiliging, named pipes voor berichtbezorging en een binaire berichtcodering. Deze binding is een geschikte door het WINDOWS Communication Foundation (WCF) door het systeem geleverde keuze voor communicatie op de computer. Het ondersteunt ook transacties.

De standaardconfiguratie voor de NetNamedPipeBinding is vergelijkbaar met de configuratie die wordt geleverd door de NetTcpBinding, maar dit is eenvoudiger omdat de WCF-implementatie alleen is bedoeld voor gebruik op de computer en er dus minder functies beschikbaar zijn. Het meest opvallende verschil is dat de securityMode instelling alleen de None opties en Transport biedt. SOAP-beveiligingsondersteuning is geen inbegrepen optie. Het beveiligingsgedrag kan worden geconfigureerd met behulp van het optionele securityMode kenmerk.

Voorbeeld

In het volgende voorbeeld wordt de binding netNamedPipeBinding gedemonstreerd, die communicatie tussen processen op dezelfde computer biedt. Named pipes werken niet op alle computers.

De binding wordt opgegeven in de configuratiebestanden voor de client en service. Het bindingstype wordt opgegeven in het binding kenmerk van het <endpoint> element. Als u de binding netNamedPipeBinding wilt configureren en enkele van de instellingen ervan wilt wijzigen, moet u een bindingsconfiguratie definiƫren. Het eindpunt moet naar de bindingsconfiguratie verwijzen op naam met een bindingConfiguration kenmerk. In dit voorbeeld heet de bindingsconfiguratie 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>

Zie ook