Megosztás a következőn keresztül:


<netTcpBinding>

Biztonságos, megbízható, optimalizált kötést ad meg, amely alkalmas a gépek közötti kommunikációra. Alapértelmezés szerint egy futtatókörnyezeti kommunikációs vermet hoz létre a Windows biztonságával az üzenetbiztonság és -hitelesítés, az üzenetkézbesítési TCP és a bináris üzenetkódolás érdekében.

<Konfigurációs>
  <system.serviceModel>
    <Kötések>
      <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>

Attribútumok és elemek

Az alábbi szakaszok az attribútumokat, a gyermekelemeket és a szülőelemeket ismertetik.

Attribútumok

Attribútum Leírás
closeTimeout Egy TimeSpan érték, amely megadja a bezárási művelet befejezéséhez megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:01:00.
hostNameComparisonMode Megadja az URI-k elemzéséhez használt HTTP-állomásnév-összehasonlítási módot. Ez az attribútum típusa HostNameComparisonMode, amely azt jelzi, hogy az URI-n való egyeztetéskor a gazdanév használatával éri-e el a szolgáltatást. Az alapértelmezett érték a StrongWildcard, amely figyelmen kívül hagyja a gazdanevet az egyezésben.
listenBacklog Pozitív egész szám, amely meghatározza a figyelőn elfogadásra váró csatornák maximális számát. A korlátot meghaladó kapcsolatok várólistára kerülnek, amíg a korlát alatti terület elérhetővé nem válik. Az connectionTimeout attribútum korlátozza, hogy az ügyfél mennyi ideig várjon a csatlakozásra, mielőtt csatlakozási kivételt eredményez. Az alapértelmezett érték 10.
maxBufferPoolSize Egy egész szám, amely meghatározza a kötés pufferkészletének maximális méretét. Az alapértelmezett érték 512 * 1024 bájt. A Windows Communication Foundation (WCF) számos része puffereket használ. A pufferek létrehozása és megsemmisítése minden használatkor költséges, és a pufferek szemétgyűjtése is költséges. A pufferkészletek használatával a készletből puffert vehet fel, használhatja, és a művelet befejezése után visszaadhatja a készletbe. Így elkerülhetők a pufferek létrehozására és megsemmisítésére vonatkozó többletterhelések.
maxBufferSize Pozitív egész szám, amely az üzenetek memóriában való tárolásához használt puffer maximális méretét adja meg bájtban.

Ha az transferMode attribútum értéke Buffered, akkor ennek az attribútumnak meg kell egyeznie az attribútum értékével maxReceivedMessageSize .

Ha az attribútum értéke Streamed, akkor ez az transferMode attribútum nem lehet nagyobb, mint az maxReceivedMessageSize attribútum értéke, és legalább a fejlécek méretének kell lennie.

Az alapértelmezett érték 65536. További információ: MaxBufferSize.
maxConnections A szolgáltatás által létrehozott/elfogadható kimenő és bejövő kapcsolatok maximális számát megadó egész szám. A bejövő és kimenő kapcsolatokat a rendszer az attribútum által meghatározott külön korlátnak számítja ki.

A korlátot meghaladó bejövő kapcsolatok várólistára kerülnek, amíg a korlát alatti terület elérhetővé nem válik.

A korlátot meghaladó kimenő kapcsolatok várólistára kerülnek, amíg a korlát alatti terület elérhetővé nem válik.

Az alapértelmezett érték 10.
maxReceivedMessageSize Pozitív egész szám, amely a kötéssel konfigurált csatornán fogadható maximális üzenetméretet adja meg bájtban, beleértve a fejléceket is. A korlátot túllépő üzenet feladója SOAP-hibát kap. A fogadó eldobja az üzenetet, és létrehozza az esemény bejegyzését a nyomkövetési naplóban. Az alapértelmezett érték 65536.
name A kötés konfigurációs nevét tartalmazó sztring. Ennek az értéknek egyedinek kell lennie, mert a kötés azonosítására szolgál. A .NET-keretrendszer 4-től kezdve a kötéseknek és a viselkedéseknek nem kell nevet adniuk. További információ az alapértelmezett konfigurációról, valamint a név nélküli kötésekről és viselkedésekről: Egyszerűsített konfiguráció és egyszerűsített konfiguráció WCF-szolgáltatásokhoz.
openTimeout Egy TimeSpan érték, amely meghatározza a nyitott művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:01:00.
portSharingEnabled Logikai érték, amely meghatározza, hogy engedélyezve van-e a TCP-portmegosztás ehhez a kapcsolathoz. Ha ez , falseminden kötés saját kizárólagos portot használ. Ez a beállítás csak a szolgáltatásokra vonatkozik, mert az ügyfelekre nincs hatással.
receiveTimeout Egy TimeSpan érték, amely meghatározza a fogadási művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:10:00.
sendTimeout Egy TimeSpan érték, amely meghatározza a küldési művelet végrehajtásához megadott időintervallumot. Ennek az értéknek nagyobbnak vagy egyenlőnek kell lennie, Zeromint . Az alapértelmezett érték 00:01:00.
transactionFlow Logikai érték, amely meghatározza, hogy a kötés támogatja-e a WS-Transactions folyamatait. A mező alapértelmezett értéke: false.
transactionProtocol Meghatározza az ezzel a kötéssel használandó tranzakciós protokollt. Az érvényes értékek a következők:

- OleTransactions
- WSAtomicTransactionOctober2004

Az alapértelmezett érték az OleTransactions. Ez az attribútum típusa TransactionProtocol.
transferMode Egy TransferMode érték, amely meghatározza, hogy az üzenetek pufferelve vagy streamelve vannak-e, vagy kérés vagy válasz.

Gyermekelemek

Elem Leírás
<Biztonsági> Meghatározza a kötés biztonsági beállításait. Ez az elem típusa NetTcpSecurityElement.
<readerQuotas> Meghatározza az ezzel a kötéssel konfigurált végpontok által feldolgozható SOAP-üzenetek összetettségére vonatkozó korlátozásokat. Ez az elem típusa XmlDictionaryReaderQuotasElement.
<reliableSession> Megadja, hogy megbízható munkamenetek jönnek-e létre a csatornavégpontok között.

Szülőelemek

Elem Leírás
<Kötések> Ez az elem standard és egyéni kötések gyűjteményét tartalmazza.

Megjegyzések

Ez a kötés alapértelmezés szerint létrehoz egy futásidejű kommunikációs vermet, amely átviteli biztonságot, TCP-t használ az üzenetkézbesítéshez és egy bináris üzenetkódolást. Ez a kötés a Windows Communication Foundation (WCF) rendszer által biztosított megfelelő választás az intraneten keresztüli kommunikációhoz.

A alapértelmezett konfigurációja netTcpBinding gyorsabb, mint a wsHttpBindingáltal biztosított konfiguráció, de csak WCF-kommunikációra szolgál. A biztonsági viselkedés a választható securityMode attribútummal konfigurálható. A WS-ReliableMessaging használata a választható reliableSessionEnabled attribútummal konfigurálható. A megbízható üzenetküldés azonban alapértelmezés szerint ki van kapcsolva. Általánosságban elmondható, hogy a HTTP rendszer által biztosított kötések( például wsHttpBinding és basicHttpBinding ) alapértelmezés szerint be vannak kapcsolva, míg a netTcpBinding kötés alapértelmezés szerint kikapcsolja a dolgokat, így be kell jelentkeznie, hogy támogatást kapjon, például az egyik WS-* specifikációhoz. Ez azt jelenti, hogy a TCP alapértelmezett konfigurációja gyorsabban vált üzeneteket a végpontok között, mint az alapértelmezés szerint a HTTP-kötésekhez konfiguráltak.

Példa

A kötés az ügyfél és a szolgáltatás konfigurációs fájljaiban van megadva. A kötés típusa az binding elem attribútumában <endpoint> van megadva. Ha konfigurálni szeretné a netTcpBinding kötést, és módosítani szeretné annak egyes beállításait, meg kell határoznia egy kötéskonfigurációt. A végpontnak egy attribútummal kell hivatkoznia a kötés konfigurációjára bindingConfiguration . Az alábbi példában egy kötéskonfiguráció van definiálva.

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

Lásd még