<netTcpBinding>

Makineler arası iletişim için uygun güvenli, güvenilir, iyileştirilmiş bir bağlama belirtir. Varsayılan olarak, ileti güvenliği ve kimlik doğrulaması, ileti teslimi için TCP ve ikili ileti kodlama için Windows Güvenliği ile bir çalışma zamanı iletişim yığını oluşturur.

<Yapılandırma>
  <system.serviceModel>
    <Bağlama>
      <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>

Öznitelikler ve öğeler

Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.

Öznitelikler

Öznitelik Açıklama
closeTimeout Kapatma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.
hostNameComparisonMode URI'leri ayrıştırmak için kullanılan HTTP ana bilgisayar adı karşılaştırma modunu belirtir. Bu öznitelik, URI ile eşleştirilirken ana bilgisayar adının hizmete ulaşmak için kullanılıp kullanılmadığını gösteren türündedir HostNameComparisonMode. Varsayılan değer, eşleşmedeki konak adını yoksayan değeridir StrongWildcard.
listenBacklog Dinleyicide kabul edilmeyi bekleyen en fazla kanal sayısını belirten pozitif bir tamsayı. Bu sınırı aşan bağlantılar, sınırın altındaki alan kullanılabilir duruma gelene kadar kuyruğa alınıyor. özniteliği, connectionTimeout bağlantı özel durumu oluşturmadan önce istemcinin bağlanmayı bekleyeceği süreyi sınırlar. Varsayılan değer 10'dur.
maxBufferPoolSize Bu bağlama için arabellek havuzu boyutunun üst sınırını belirten bir tamsayı. Varsayılan değer 512 * 1024 bayttır. Windows Communication Foundation'ın (WCF) birçok bölümünde arabellek kullanılır. Arabelleklerin her kullanıldığında oluşturulması ve yok edilmesi pahalıdır ve arabellekler için çöp toplama da pahalıdır. Arabellek havuzları ile havuzdan bir arabellek alabilir, kullanabilir ve işiniz bittiğinde havuza döndürebilirsiniz. Bu nedenle arabellek oluşturma ve yok etme ek yükünden kaçınılır.
maxBufferSize İletileri bellekte depolamak için kullanılan arabelleğin bayt cinsinden en büyük boyutunu belirten pozitif bir tamsayı.

transferMode özniteliği değerine eşitseBuffered, bu öznitelik öznitelik değerine eşit maxReceivedMessageSize olmalıdır.

transferMode özniteliği değerine Streamedeşitse, bu öznitelik öznitelik değerinden maxReceivedMessageSize daha büyük olamaz ve en azından üst bilgilerin boyutu olmalıdır.

Varsayılan değer 65536'dır. Daha fazla bilgi için bkz. MaxBufferSize.
maxConnections Hizmetin oluşturacağı/kabul edeceği en fazla giden ve gelen bağlantı sayısını belirten bir tamsayı. Gelen ve giden bağlantılar, bu öznitelik tarafından belirtilen ayrı bir sınıra göre sayılır.

Sınırı aşan gelen bağlantılar, sınırın altındaki bir alan kullanılabilir duruma gelene kadar kuyruğa alınıyor.

Sınırı aşan giden bağlantılar, sınırın altındaki bir alan kullanılabilir hale gelene kadar kuyruğa alınıyor.

Varsayılan değer 10'dur.
maxReceivedMessageSize Bu bağlamayla yapılandırılan bir kanalda alınabilecek üst bilgiler de dahil olmak üzere bayt cinsinden en büyük ileti boyutunu belirten pozitif bir tamsayı. Bu sınırı aşan bir iletinin göndereni SOAP hatası alır. Alıcı iletiyi bırakır ve izleme günlüğünde olayın bir girdisini oluşturur. Varsayılan değer 65536'dır.
name Bağlamanın yapılandırma adını içeren bir dize. Bağlama için tanımlama olarak kullanıldığından bu değer benzersiz olmalıdır. .NET Framework 4'den başlayarak, bağlamaların ve davranışların bir ada sahip olması gerekmez. Varsayılan yapılandırma ve adsız bağlamalar ve davranışlar hakkında daha fazla bilgi için bkz. WCF Hizmetleri için Basitleştirilmiş Yapılandırma ve Basitleştirilmiş Yapılandırma.
openTimeout Açma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.
portSharingEnabled Bu bağlantı için TCP bağlantı noktası paylaşımının etkinleştirilip etkinleştirilmediğini belirten bir Boole değeri. Bu ise false, her bağlama kendi özel bağlantı noktasını kullanır. İstemciler etkilenmediğinden bu ayar yalnızca hizmetlerle ilgilidir.
receiveTimeout Alma TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:10:00'dır.
sendTimeout Gönderme TimeSpan işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya değerine Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.
transactionFlow Bağlamanın akış WS-Transactions'i destekleyip desteklemediğini belirten boole değeri. Varsayılan değer: false.
transactionProtocol Bu bağlama ile kullanılacak işlem protokollerini belirtir. Geçerli değerler şunlardır:

- OleTransactions
- WSAtomicTransactionOctober2004

Varsayılan değer OleTransactions'tır. Bu öznitelik türündedir TransactionProtocol.
transferMode TransferMode İletilerin arabelleğe alınıp alınmayacağını veya akışa alınıp alınmayacağını ya da istek ya da yanıt olup olmadığını belirten bir değer.

Alt öğeleri

Öğe Açıklama
<Güvenlik> Bağlama için güvenlik ayarlarını tanımlar. Bu öğe türündedir NetTcpSecurityElement.
<readerQuotas> Bu bağlama ile yapılandırılan uç noktalar tarafından işlenebilen SOAP iletilerinin karmaşıklığıyla ilgili kısıtlamaları tanımlar. Bu öğe türündedir XmlDictionaryReaderQuotasElement.
<reliableSession> Kanal uç noktaları arasında güvenilir oturumlar oluşturularak kurulmadığını belirtir.

Üst öğeler

Öğe Açıklama
<Bağlama> Bu öğe, standart ve özel bağlamalardan oluşan bir koleksiyonu barındırıyor.

Açıklamalar

Bu bağlama varsayılan olarak aktarım güvenliğini, ileti teslimi için TCP'yi ve ikili ileti kodlamasını kullanan bir çalışma zamanı iletişim yığını oluşturur. Bu bağlama, intranet üzerinden iletişim kurmak için uygun bir Windows Communication Foundation (WCF) sistemi tarafından sağlanan seçenektir.

için netTcpBinding varsayılan yapılandırma, tarafından wsHttpBindingsağlanan yapılandırmadan daha hızlıdır, ancak yalnızca WCF iletişimi için tasarlanmıştır. Güvenlik davranışı isteğe bağlı securityMode özniteliği kullanılarak yapılandırılabilir. WS-ReliableMessaging kullanımı isteğe bağlı reliableSessionEnabled özniteliği kullanılarak yapılandırılabilir. Ancak güvenilir mesajlaşma varsayılan olarak kapalıdır. Daha genel olarak, ve basicHttpBinding gibi wsHttpBinding HTTP sistemi tarafından sağlanan bağlamalar varsayılan olarak öğeleri açmak üzere yapılandırılırkennetTcpBinding, bağlama varsayılan olarak öğeleri kapatır, böylece WS-* belirtimlerinden biri için destek almak için kabul etmeniz gerekir. Bu, TCP için varsayılan yapılandırmanın uç noktalar arasında ileti alışverişinde, VARSAYıLAN OLARAK HTTP bağlamaları için yapılandırılanlardan daha hızlı olduğu anlamına gelir.

Örnek

Bağlama, istemci ve hizmetin yapılandırma dosyalarında belirtilir. Bağlama türü öğesinin binding özniteliğinde <endpoint> belirtilir. netTcpBinding bağlamasını yapılandırmak ve bazı ayarlarını değiştirmek istiyorsanız, bağlama yapılandırması tanımlamak gerekir. Uç nokta, bağlama yapılandırmasına bir bindingConfiguration öznitelikle başvurmalıdır. Aşağıdaki örnekte bağlama yapılandırması tanımlanmıştır.

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

Ayrıca bkz.