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.

<configuration>
  <system.serviceModel>
    <bindings>
      <netTcpBinding>

Syntaxis

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

Attributes

Attribute Description
closeTimeout Een TimeSpan waarde die het tijdsinterval aangeeft dat is opgegeven voor een sluitingsbewerking die moet worden voltooid. Deze waarde moet groter dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
hostNameComparisonMode Hiermee geeft u de http-hostnaamvergelijkingsmodus op die wordt gebruikt om URI's te parseren. Dit kenmerk is van het type HostNameComparisonMode, wat aangeeft of de hostnaam wordt gebruikt om de service te bereiken wanneer deze overeenkomt met 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 moet worden geaccepteerd voor de listener. Verbindingen die boven deze limiet vallen, worden in de wachtrij geplaatst totdat er ruimte onder de limiet beschikbaar is. Het connectionTimeout kenmerk beperkt de tijd dat een client moet worden verbonden voordat er een verbindingsonderzondering wordt gegenereerd. De standaardwaarde is 10.
maxBufferPoolSize Een geheel getal dat de maximale buffergroepgrootte 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 telkens wanneer ze worden gebruikt, is duur en garbagecollection voor buffers is ook duur. Met buffergroepen kunt u een buffer uit de pool nemen, deze gebruiken en teruggaan naar de pool zodra u klaar bent. De overhead bij het maken en vernietigen van buffers wordt dus 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 meer zijn dan de maxReceivedMessageSize kenmerkwaarde en moet dit ten minste de grootte van de headers zijn.

De standaardwaarde is 65536. Zie MaxBufferSize voor meer informatie.
maxConnections Een geheel getal dat het maximum aantal uitgaande en binnenkomende verbindingen aangeeft dat de service maakt/accepteert. Binnenkomende en uitgaande verbindingen worden meegeteld voor een afzonderlijke limiet die door dit kenmerk is opgegeven.

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

Uitgaande verbindingen die boven de limiet vallen, worden in de wachtrij geplaatst totdat er 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 laat het bericht vallen en maakt een vermelding van de gebeurtenis in het traceerlogboek. 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 hoeven bindingen en gedragingen geen 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 geopende bewerking moet worden voltooid. Deze waarde moet groter dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
portSharingEnabled Een Booleaanse waarde die aangeeft of delen van TCP-poorten is ingeschakeld voor deze verbinding. Als dit het is false, gebruikt elke binding een eigen exclusieve poort. Deze instelling is alleen relevant voor services, omdat clients niet worden beïnvloed.
receiveTimeout Een TimeSpan waarde die het tijdsinterval aangeeft dat een ontvangstbewerking moet worden voltooid. Deze waarde moet groter 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 dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00.
transactionFlow Een Booleaanse waarde die aangeeft of de binding ondersteuning biedt voor stromende WS-Transactions. De standaardwaarde is false.
transactionProtocol Hiermee geeft u het transactieprotocol dat 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

Onderdeel Description
<veiligheid> Definieert de beveiligingsinstellingen voor de binding. Dit element is van het type NetTcpSecurityElement.
<readerQuotas> 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

Onderdeel Description
<Bindings> Dit element bevat een verzameling standaard- en aangepaste bindingen.

Opmerkingen

Deze binding genereert standaard een runtime-communicatiestack, die gebruikmaakt van transportbeveiliging, TCP voor berichtbezorging en een binaire berichtcodering. Deze binding is een geschikte WCF-systeemkeuze (Windows Communication Foundation) voor communicatie via een intranet.

De standaardconfiguratie voor de netTcpBinding configuratie is sneller dan de configuratie van de wsHttpBinding, maar deze 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. Over 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 standaard wordt uitgeschakeld, zodat u zich moet aanmelden om ondersteuning te krijgen, bijvoorbeeld voor een van de WS-*-specificaties. Dit betekent dat de standaardconfiguratie voor TCP sneller is bij het uitwisselen van berichten tussen eindpunten dan die zijn geconfigureerd voor de HTTP-bindingen.

Example

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 van de instellingen ervan 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