<netNamedPipeBinding>
Definiert eine Bindung, die sicher und zuverlässig ist und für eine prozessübergreifende Kommunikation auf einem Computer optimiert ist. Sie generiert standardmäßig einen Laufzeitkommunikationsstapel mit WS-ReliableMessaging für Zuverlässigkeit, Transport- und Übertragungssicherheit, Named Pipes für den Nachrichtentransport sowie binäre Nachrichtenverschlüsselung.
Schemahierarchie
<<system.serviceModel>>
<bindings>
<netNamedPipeBinding>
Syntax
<netNamedPipeBinding>
<binding
closeTimeout="TimeSpan"
hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
maxBufferPoolSize="Integer"
maxBufferSize="Integer"
maxConnections="Integer"
maxReceivedMessageSize="Integer"
name="string"
openTimeout="TimeSpan"
receiveTimeout="TimeSpan"
sendTimeout="TimeSpan"
transactionFlow="Boolean"
transactionProtocol="OleTransactions/WS-AtomicTransactionOctober2004"
transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
<security mode="None/Transport">
<transport protectionLevel="None/Sign/EncryptAndSign" />
</security>
<readerQuotas maxArrayLength="Integer" maxBytesPerRead="Integer" maxDepth="Integer" maxNameTableCharCount="Integer" maxStringContentLength="Integer" /> </binding>
</netNamedPipeBinding>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.
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. |
maxBufferPoolSize |
Eine ganze Zahl, die die maximale Pufferpoolgröße für diese Bindung angibt. Der Standardwert ist 524.288 Byte (512 * 1024). 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. Falls der Puffer voll ist, verbleiben die überzähligen Daten so lange im zugrunde liegenden Socket, bis der Puffer wieder Platz bietet. Dieser Wert darf nicht kleiner sein als das maxReceivedMessageSize-Attribut. 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. Ab .NET Framework 4 müssen Bindungen und Verhalten keinen Namen aufweisen. Weitere Informationen zu Standardkonfiguration und zu namenlosen Bindungen und Verhalten finden Sie unter Simplified Configuration und Simplified Configuration for WCF Services. |
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. |
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:
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 |
---|---|
Definiert die Sicherheitseinstellungen für die Bindung. Dieses Element ist vom Typ NetNamedPipeBindingElement. |
|
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. |
Übergeordnete Elemente
Element | Beschreibung |
---|---|
Dieses Element enthält eine Auflistung von standardmäßigen und benutzerdefinierten Bindungen. |
Hinweise
NetNamedPipeBinding generiert standardmäßig eine Laufzeitkommunikation, die Transportsicherheit, Named Pipes 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 computerinterne Kommunikation. Sie unterstützt auch Transaktionen.
Die Standardkonfiguration für NetNamedPipeBinding ähnelt der Konfiguration, die von NetTcpBinding bereitgestellt wird, sie ist jedoch einfacher, da die WCF-Implementierung nur für die computerinterne Verwendung konzipiert ist und daher weniger Funktionen verfügbar sind. Der wichtigste Unterschied besteht darin, dass die securityMode-Einstellung nur die Optionen None und Transport anbietet. SOAP-Sicherheitsunterstützung ist keine eingeschlossene Option. Das Sicherheitsverhalten ist mit dem optionalen securityMode-Attribut konfigurierbar.
Beispiel
Im folgenden Beispiel wird die netNamedPipeBinding-Bindung, die prozessübergreifende Kommunikation auf dem gleichen Computer bereitstellt, veranschaulicht. Benannte Pipes funktionieren nicht computerübergreifend.
Die Bindung wird in den Konfigurationsdateien zum Client und Dienst angegeben. Der Bindungstyp wird im binding-Attribut des <endpoint>-Elements angegeben. Wenn Sie die netNamedPipeBinding-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. In diesem Beispiel wird die Bindungskonfiguration Binding1 genannt.
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="https://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: net.pipe://localhost/ServiceModelSamples/service -->
<endpoint address="net.pipe://localhost/ServiceModelSamples/service"
binding="netNamedPipeBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed at https://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<netNamedPipeBinding>
<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"
maxBufferPoolSize="524288"
maxBufferSize="65536"
maxConnections="10"
maxReceivedMessageSize="65536">
<security mode="Transport">
<transport protectionLevel="EncryptAndSign" />
</security>
</binding>
</netNamedPipeBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Siehe auch
Verweis
NetNamedPipeBindingElement
NetNamedPipeBinding
Konzepte
Weitere Ressourcen
Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients