Share via


<<netTcpBinding>>

Gibt eine sichere, zuverlässige und optimierte Bindung an, die computerübergreifende Kommunikation unterstützt. Diese Bindung generiert standardmäßig einen Laufzeitkommunikationsstapel mit WS-ReliableMessaging für die Zuverlässigkeit, Windows-Sicherheit für die Nachrichtensicherheit und die Authentifizierung, TCP für die Nachrichtenübertragung sowie binäre Nachrichtenkodierung.

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

<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"
                defaultProtectionLevel="None/Sign/EncryptAndSign" 
                     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 maxDepth="integer" 
            maxStringContentLength="integer"
            maxByteArrayContentLength="integer"
            maxBytesPerRead="integer"
            maxNameTableCharCount="integer" />
   </binding>
</netTcpBinding>

Attribute und Elemente

Attribute

Attribut Beschreibung

closeTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Schließvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.

hostnameComparisonMode

Gibt den HTTP-Hostnamen-Vergleichsmodus an, der verwendet wird, um URIs zu analysieren. Dieses Attribut ist vom Typ HostnameComparisonMode und gibt an, ob beim Abgleich des URI der Hostname zum Erreichen des Dienstes verwendet wird. Der Standardwert ist StrongWildcard, wodurch der Hostname beim Abgleich ignoriert wird.

listenBacklog

Eine positive ganze Zahl, die die maximale Anzahl an Kanälen angibt, die im Listener darauf warten, akzeptiert zu werden. Verbindungen oberhalb des Limits werden in die Warteschlange gestellt, bis unterhalb des Limits Speicherplatz verfügbar wird. Das connectionTimeout-Attribut beschränkt die Zeit, die ein Client wartet, bevor eine Verbindungsausnahme ausgelöst wird. Der Standardwert ist 10.

maxBufferPoolSize

Eine ganze Zahl, die die maximale Pufferpoolgröße für diese Bindung angibt. Der Standardwert ist 512 * 1024 Bytes. Viele Teile von Windows Communication Foundation (WCF) verwenden Puffer. Das Erstellen und Zerstören von Puffern bei jeder Verwendung ist kostspielig. Dasselbe gilt für die Garbage Collection für Puffer. Bei Pufferpools können Sie einen zu verwendenden Puffer aus dem Pool nehmen und ihn nach der Verwendung wieder dem Pool zuführen. So wird der Aufwand beim Erstellen und Zerstören von Puffern vermieden.

maxBufferSize

Eine positive ganze Zahl, die die maximale Größe des Puffers in Bytes angibt, der zum Speichern von Nachrichten verwendet wird.

Wenn das transferMode-Attribut auf Buffered festgelegt ist, sollte dieses Attribut auf den maxReceivedMessageSize-Attributwert festgelegt werden.

Wenn das transferMode-Attribut auf Streamed festgelegt ist, darf dieses Attribut den maxReceivedMessageSize-Attributwert nicht überschreiten und sollte mindestens auf die Größe des Headers festgelegt werden.

Der Standardwert beträgt 65536. Weitere Informationen finden Sie unter MaxBufferSize.

maxConnections

Eine ganze Zahl, die die maximale Anzahl ausgehender und eingehender Verbindungen angibt, die der Dienst erstellt bzw. akzeptiert. Eingehende und ausgehende Verbindungen werden mit einem separaten, von diesem Attribut angegebenen Grenzwert verglichen.

Eingehende Verbindungen, die diesen Grenzwert überschreiten, werden in die Warteschlange gestellt, bis wieder Speicherplatz verfügbar wird.

Ausgehende Verbindungen, die diesen Grenzwert überschreiten, werden in die Warteschlange gestellt, bis wieder Speicherplatz verfügbar wird.

Der Standardwert ist 10.

maxReceivedMessageSize

Eine positive ganze Zahl, die die maximale Nachrichtengröße in Bytes einschließlich Header angibt, die in einem für diese Bindung konfigurierten Kanal beim Nachrichtenempfang zulässig ist. Der Absender einer Nachricht, die diese Grenze überschreitet, erhält einen SOAP-Fehler. Der Empfänger verwirft die Nachricht und erstellt einen Eintrag des Ereignisses im Ablaufverfolgungsprotokoll. Der Standardwert ist 65536.

name

Eine Zeichenfolge, die den Konfigurationsnamen der Bindung enthält. Dieser Wert sollte eindeutig sein, da er von der Bindung zur Identifizierung verwendet wird.

openTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Öffnungsvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.

portSharingEnabled

Ein boolescher Wert, der angibt, ob die TCP-Anschlussfreigabe für diese Verbindung aktiviert ist. Wenn dies false ist, verwendet jede Bindung ihren eigenen Anschluss. Diese Einstellung ist nur für Dienste relevant, da Clients nicht betroffen sind.

receiveTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Empfangsvorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:10:00.

sendTimeout

Ein TimeSpan-Wert, der das Zeitintervall für den Abschluss eines Sendevorgangs angibt. Dieser Wert muss größer oder gleich Zero sein. Der Standardwert ist 00:01:00.

transactionFlow

Ein boolescher Wert, der angibt, ob die Bindung geleitete WS-Transaktionen unterstützt. Der Standardwert ist false.

transactionProtocol

Gibt das Transaktionsprotokoll an, das mit dieser Bindung verwendet werden soll. Gültige Werte sind:

  • OleTransactions
  • WSAtomicTransactionOctober2004

Der Standardwert ist OleTransactions. Dieses Attribut ist vom Typ TransactionProtocol.

transferMode

Ein TransferMode-Wert, der angibt, ob Nachrichten bei einer Anforderung oder Antwort gepuffert oder per Stream übertragen werden.

Untergeordnete Elemente

Element Beschreibung

<security> von <netTcpBinding>

Definiert die Sicherheitseinstellungen für die Bindung. Dieses Element ist vom Typ NetTcpSecurityElement.

<readerQuotas>

Definiert die Beschränkungen der Komplexität von SOAP-Nachrichten, die von Endpunkten verarbeitet werden können, die mit dieser Bindung konfiguriert wurden. Dieses Element ist vom Typ XmlDictionaryReaderQuotasElement.

<reliableSession>-Element

Gibt an, ob zuverlässige Sitzungen zwischen Kanalendpunkten aufgebaut werden.

Übergeordnete Elemente

Element Beschreibung

<bindings>

Dieses Element enthält eine Auflistung von standardmäßigen und benutzerdefinierten Bindungen. Jeder Eintrag wird durch seinen name identifiziert. Dienste verwenden Bindungen, indem sie sie mithilfe des name verknüpfen.

Hinweise

Diese Bindung generiert standardmäßig eine Laufzeitkommunikation, die Transportsicherheit, TCP zur Nachrichtenübermittlung und eine binäre Nachrichtencodierung verwendet. Diese Bindung ist eine entsprechende, vom System bereitgestellte Windows Communication Foundation (WCF)-Wahl für die Kommunikation über ein Intranet.

Die Standardkonfiguration für die netTcpBinding ist schneller als die von wsHttpBinding bereitgestellte Kommunikation, ist aber ausschließlich für WCF-zu-WCF-Kommunikation vorgesehen. Das Sicherheitsverhalten ist mit dem optionalen securityMode-Attribut konfigurierbar. Die Verwendung von WS-ReliableMessaging ist mit dem optionalen reliableSessionEnabled-Attribut konfigurierbar. Zuverlässiges Messaging ist jedoch standardmäßig deaktiviert. Die vom System bereitgestellten HTTP-Bindungen, wie z. B. wsHttpBinding und basicHttpBinding sind im Allgemeinen so konfiguriert, dass Funktionen standardmäßig aktiviert werden ,während die netTcpBinding-Bindung Funktionen standardmäßig deaktiviert, sodass Sie die Unterstützung für eine der WS-*-Spezifikationen explizit übernehmen müssen. Das bedeutet, dass die Standardkonfiguration für TCP Meldungen zwischen Endpunkten schneller austauscht als die standardmäßig für die HTTP-Bindungen festgelegten Konfigurationen.

Beispiel

Die Bindung wird in den Konfigurationsdateien zum Client und Dienst angegeben. Der Bindungstyp wird im binding-Attribut des <endpoint>-Elements angegeben. Wenn Sie die netTcpBinding-Bindung konfigurieren und einige der Einstellungen ändern möchten, müssen Sie eine Bindungskonfiguration definieren. Der Endpunkt muss auf die Bindungskonfiguration mithilfe des bindingConfiguration-Attributs mit einem Namen verweisen. Im folgenden Beispiel heißt die Bindungskonfiguration Binding1 und ist definiert wie gezeigt.

<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              bindingConfiguration="Binding1" 
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

<bindings>
  <netTcpBinding>
    <binding name="Binding1" 
             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>

Siehe auch

Referenz

NetTcpBinding
NetTcpBindingElement

Konzepte

<binding>

Weitere Ressourcen

Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients