<Nettcpbinding>
Určuje zabezpečenou, spolehlivou a optimalizovanou vazbu, která je vhodná pro komunikaci mezi počítači. Ve výchozím nastavení generuje zásobník komunikace modulu runtime s Zabezpečení Windows pro zabezpečení a ověřování zpráv, TCP pro doručování zpráv a kódování binární zprávy.
<Konfigurace>
<System.servicemodel>
<Vazby>
<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>
Atributy a prvky
Následující části popisují atributy, podřízené prvky a nadřazené prvky.
Atributy
Atribut | Popis |
---|---|
closeTimeout |
Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace uzavření. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:01:00. |
hostNameComparisonMode |
Určuje režim porovnání názvů hostitelů HTTP, který se použije k parsování identifikátorů URI. Tento atribut je typu HostNameComparisonMode, který označuje, jestli se název hostitele používá k připojení ke službě při porovnávání identifikátoru URI. Výchozí hodnota je StrongWildcard, která ignoruje název hostitele v shodě. |
listenBacklog |
Kladné celé číslo, které určuje maximální počet kanálů čekajících na přijetí v naslouchacím procesu. Připojení přesahující tento limit se zasouvají do fronty, dokud nebude k dispozici místo pod tímto limitem. Atribut connectionTimeout omezuje dobu, po které bude klient čekat na připojení, než vyvolá výjimku připojení. Výchozí hodnota je 10. |
maxBufferPoolSize |
Celé číslo, které určuje maximální velikost fondu vyrovnávacích pamětí pro tuto vazbu. Výchozí hodnota je 512 × 1024 bajtů. Mnoho částí Windows Communication Foundation (WCF) používá vyrovnávací paměti. Vytváření a ničení vyrovnávacích pamětí při každém jejich použití je nákladné a uvolňování paměti pro vyrovnávací paměti je také nákladné. Pomocí fondů vyrovnávacích pamětí můžete z fondu vzít vyrovnávací paměť, použít ji a po dokončení ji vrátit do fondu. Tím se vyhnete režijní režii při vytváření a ničení vyrovnávacích pamětí. |
maxBufferSize |
Kladné celé číslo, které určuje maximální velikost vyrovnávací paměti použité k ukládání zpráv do paměti (v bajtech). Pokud se transferMode atribut rovná Buffered , měl by se tento atribut rovnat hodnotě atributu maxReceivedMessageSize .Pokud se transferMode atribut rovná Streamed , nemůže být tento atribut větší než hodnota atributu maxReceivedMessageSize a měl by mít alespoň velikost hlaviček.Výchozí hodnota je 65536. Další informace naleznete v tématu MaxBufferSize. |
maxConnections |
Celé číslo, které určuje maximální počet odchozích a příchozích připojení, která služba vytvoří nebo přijme. Příchozí a odchozí připojení se počítají do samostatného limitu určeného tímto atributem. Příchozí připojení přesahující limit se zasouvají do fronty, dokud nebude k dispozici prostor pod limitem. Odchozí připojení přesahující limit se zasouvají do fronty, dokud nebude k dispozici prostor pod limitem. Výchozí hodnota je 10. |
maxReceivedMessageSize |
Kladné celé číslo, které určuje maximální velikost zprávy v bajtech včetně hlaviček, které lze přijímat v kanálu nakonfigurovaného pomocí této vazby. Odesílatel zprávy překračující tento limit obdrží chybu SOAP. Příjemce zprávu zahodí a vytvoří záznam události v protokolu trasování. Výchozí hodnota je 65536. |
name |
Řetězec, který obsahuje název konfigurace vazby. Tato hodnota by měla být jedinečná, protože se používá jako identifikace vazby. Počínaje rozhraním .NET Framework 4 není nutné, aby vazby a chování měly název. Další informace o výchozí konfiguraci a bezpomenných vazbách a chování najdete v tématu Zjednodušená konfigurace a zjednodušená konfigurace pro služby WCF. |
openTimeout |
Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace otevření. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:01:00. |
portSharingEnabled |
Logická hodnota, která určuje, zda je pro toto připojení povoleno sdílení portů TCP. Pokud je false to , každá vazba používá svůj vlastní exkluzivní port. Toto nastavení je relevantní jenom pro služby, protože na klienty to nemá vliv. |
receiveTimeout |
Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace příjmu. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:10:00. |
sendTimeout |
Hodnota TimeSpan , která určuje časový interval zadaný pro dokončení operace odeslání. Tato hodnota by měla být větší nebo rovna Zero. Výchozí hodnota je 00:01:00. |
transactionFlow |
Logická hodnota, která určuje, zda vazba podporuje tok ws-Transactions. Výchozí formát je false . |
transactionProtocol |
Určuje transakční protokol, který má být použit s touto vazbou. Platné hodnoty jsou: – OleTransactions – WSAtomicTransactionOctober2004 Výchozí hodnota je OleTransactions. Tento atribut je typu TransactionProtocol. |
transferMode |
Hodnota TransferMode , která určuje, jestli se zprávy ukládají do vyrovnávací paměti nebo streamují, nebo jestli se mají vyžadovat nebo odpovědět. |
Podřízené prvky
Element | Popis |
---|---|
<Zabezpečení> | Definuje nastavení zabezpečení pro vazbu. Tento prvek je typu NetTcpSecurityElement. |
<čtenářQuotas> | Definuje omezení složitosti zpráv SOAP, které mohou být zpracovány koncovými body nakonfigurovanými pomocí této vazby. Tento prvek je typu XmlDictionaryReaderQuotasElement. |
<reliableSession> | Určuje, jestli se mezi koncovými body kanálu navazují spolehlivé relace. |
Nadřazené prvky
Element | Popis |
---|---|
<Vazby> | Tento element obsahuje kolekci standardních a vlastních vazeb. |
Poznámky
Tato vazba generuje ve výchozím nastavení zásobník komunikace za běhu, který používá zabezpečení přenosu, TCP pro doručování zpráv a kódování binární zprávy. Tato vazba je vhodnou volbou systému Windows Communication Foundation (WCF) pro komunikaci přes intranet.
Výchozí konfigurace pro netTcpBinding
je rychlejší než konfigurace poskytovaná wsHttpBinding
, ale je určena pouze pro komunikaci WCF. Chování zabezpečení je konfigurovatelné pomocí volitelného securityMode
atributu. Použití WS-ReliableMessaging je možné konfigurovat pomocí volitelného reliableSessionEnabled
atributu. Spolehlivé zasílání zpráv je ale ve výchozím nastavení vypnuté. Obecněji platí, že systémové vazby HTTP, jako wsHttpBinding
jsou a basicHttpBinding
, jsou nakonfigurované tak, aby se ve výchozím nastavení zapnuly, zatímco netTcpBinding
vazby ve výchozím nastavení vypínají, takže pokud chcete získat podporu, například pro některou ze specifikací WS-*, musíte vyjádřit výslovný souhlas. To znamená, že výchozí konfigurace protokolu TCP je rychlejší při výměně zpráv mezi koncovými body než konfigurace pro vazby HTTP ve výchozím nastavení.
Příklad
Vazba je určena v konfiguračních souborech pro klienta a službu. Typ vazby je určen v atributu binding
elementu <endpoint>
. Pokud chcete nakonfigurovat vazbu netTcpBinding a změnit některá její nastavení, je nutné definovat konfiguraci vazby. Koncový bod musí odkazovat na konfiguraci vazby atributem bindingConfiguration
. V následujícím příkladu je definována konfigurace vazby.
<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>