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