Delen via


<netTcpBinding>

Hiermee geeft u een veilige, betrouwbare, geoptimaliseerde binding die geschikt is voor communicatie tussen machines. Standaard wordt er een runtimecommunicatiestack gegenereerd met Windows-beveiliging voor berichtbeveiliging en verificatie, TCP voor berichtbezorging en binaire berichtcodering.

<Configuratie>
  <system.serviceModel>
    <Bindings>
      <netTcpBinding>

Syntax

<netTcpBinding>
  <binding closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           listenBacklog="Integer"
           maxBufferPoolSize="integer"
           maxBufferSize="Integer"
           maxConnections="Integer"
           maxReceivedMessageSize="Integer"
           name="string"
           openTimeout="TimeSpan"
           portSharingEnabled="Boolean"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           transactionFlow="Boolean"
           transactionProtocol="OleTransactions/WSAtomicTransactionOctober2004"
           transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan"
                     enabled="Boolean" />
    <security mode="None/Transport/Message/Both">
      <message clientCredentialType="None/Windows/UserName/Certificate/CardSpace"
               algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15" />
      <transport clientCredentialType="None/Windows/Certificate"
                 protectionLevel="None/Sign/EncryptAndSign" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</netTcpBinding>

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.
listenBacklog Een positief geheel getal dat het maximum aantal kanalen aangeeft dat wacht om te worden geaccepteerd op de listener. Verbindingen die deze limiet overschrijden, worden in de wachtrij geplaatst totdat ruimte onder de limiet beschikbaar is. Het connectionTimeout kenmerk beperkt de tijd die een client wacht om verbinding te maken voordat een verbindingsuitzondering wordt gegenereerd. De standaardwaarde is 10.
maxBufferPoolSize Een geheel getal dat de maximale grootte van de buffergroep voor deze binding aangeeft. De standaardwaarde is 512 * 1024 bytes. 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 het transferMode kenmerk gelijk is aan Buffered, moet dit kenmerk gelijk zijn aan de maxReceivedMessageSize kenmerkwaarde.

Als het transferMode kenmerk gelijk is aan Streamed, mag dit kenmerk niet groter zijn dan de maxReceivedMessageSize kenmerkwaarde en moet het ten minste de grootte van de headers hebben.

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.
name 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.
portSharingEnabled Een Booleaanse waarde die aangeeft of tcp-poort delen is ingeschakeld voor deze verbinding. Als dit is, gebruikt falseelke binding een eigen exclusieve poort. Deze instelling is alleen relevant voor services, omdat clients niet worden beïnvloed.
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
- WSAtomicTransactionOctober2004

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 NetTcpSecurityElement.
<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.
<reliableSession> Hiermee geeft u op of er betrouwbare sessies tot stand worden gebracht tussen kanaaleindpunten.

Bovenliggende elementen

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

Opmerkingen

Met deze binding wordt standaard een runtime-communicatiestack gegenereerd, die gebruikmaakt van transportbeveiliging, TCP voor berichtbezorging en een binaire berichtcodering. Deze binding is een geschikte door het WINDOWS Communication Foundation (WCF) door het systeem geleverde keuze voor communicatie via een intranet.

De standaardconfiguratie voor de netTcpBinding is sneller dan de configuratie die wordt geleverd door de wsHttpBinding, maar is alleen bedoeld voor WCF-communicatie. Het beveiligingsgedrag kan worden geconfigureerd met behulp van het optionele securityMode kenmerk. Het gebruik van WS-ReliableMessaging kan worden geconfigureerd met behulp van het optionele reliableSessionEnabled kenmerk. Maar betrouwbare berichten zijn standaard uitgeschakeld. Meer in het algemeen worden de door het HTTP-systeem geleverde bindingen zoals wsHttpBinding en basicHttpBinding geconfigureerd om dingen standaard in te schakelen, terwijl de netTcpBinding binding dingen standaard uitschakelt, zodat u zich moet aanmelden om ondersteuning te krijgen, bijvoorbeeld voor een van de WS-*-specificaties. Dit betekent dat de standaardconfiguratie voor TCP sneller berichten uitwisselt tussen eindpunten dan de eindpunten die standaard zijn geconfigureerd voor de HTTP-bindingen.

Voorbeeld

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 netTcpBinding-binding wilt configureren en enkele instellingen wilt wijzigen, moet u een bindingsconfiguratie definiëren. Het eindpunt moet verwijzen naar de bindingsconfiguratie met een bindingConfiguration kenmerk. In het volgende voorbeeld wordt een bindingsconfiguratie gedefinieerd.

<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>
<bindings>
  <netTcpBinding>
    <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"
             listenBacklog="10"
             maxBufferPoolSize="524288"
             maxBufferSize="65536"
             maxConnections="10"
             maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32"
                    maxStringContentLength="8192"
                    maxArrayLength="16384"
                    maxBytesPerRead="4096"
                    maxNameTableCharCount="16384" />
      <reliableSession ordered="true"
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Transport">
        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

Zie ook