<netNamedPipeBinding>
Definieert een binding die veilig, betrouwbaar en geoptimaliseerd is voor communicatie tussen processen op de machine. Standaard wordt er een runtimecommunicatiestack gegenereerd met WS-ReliableMessaging voor betrouwbaarheid, transportbeveiliging voor overdrachtsbeveiliging, named pipes voor berichtbezorging en binaire berichtcodering.
<Configuratie>
<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>
Kenmerken en elementen
In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven
Kenmerken
Kenmerk | Beschrijving |
---|---|
closeTimeout | Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een close-bewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
hostNameComparisonMode | Hiermee geeft u de http-hostnaamvergelijkingsmodus op die wordt gebruikt voor het parseren van URI's. Dit kenmerk is van het type HostNameComparisonMode, dat aangeeft of de hostnaam wordt gebruikt om de service te bereiken bij het vergelijken op de URI. De standaardwaarde is StrongWildcard, waarmee de hostnaam in de overeenkomst wordt genegeerd. |
maxBufferPoolSize | Een geheel getal dat de maximale grootte van de buffergroep voor deze binding aangeeft. De standaardwaarde is 524.288 bytes (512 * 1024). Veel onderdelen van Windows Communication Foundation (WCF) maken gebruik van buffers. Het maken en vernietigen van buffers elke keer dat ze worden gebruikt, is duur en garbagecollection voor buffers is ook duur. Met bufferpools kunt u een buffer uit de pool nemen, deze gebruiken en teruggaan naar de pool wanneer u klaar bent. Zo wordt de overhead bij het maken en vernietigen van buffers vermeden. |
Maxbuffersize | Een positief geheel getal dat de maximale grootte, in bytes, aangeeft van de buffer die wordt gebruikt voor het opslaan van berichten in het geheugen. Als de buffer vol is, blijven overtollige gegevens in de onderliggende socket totdat de buffer weer ruimte heeft. Deze waarde mag niet kleiner zijn dan maxReceivedMessageSize kenmerk. De standaardwaarde is 65536. Voor meer informatie raadpleegt u MaxBufferSize. |
maxConnections | Een geheel getal dat het maximum aantal uitgaande en binnenkomende verbindingen aangeeft dat de service maakt/accepteert. Binnenkomende en uitgaande verbindingen worden geteld voor een afzonderlijke limiet die is opgegeven door dit kenmerk. Binnenkomende verbindingen die de limiet overschrijden, worden in de wachtrij geplaatst totdat een ruimte onder de limiet beschikbaar is. Uitgaande verbindingen die de limiet overschrijden, worden in de wachtrij geplaatst totdat een ruimte onder de limiet beschikbaar is. De standaardwaarde is 10. |
maxReceivedMessageSize | Een positief geheel getal dat de maximale berichtgrootte aangeeft, in bytes, inclusief headers, die kunnen worden ontvangen op een kanaal dat is geconfigureerd met deze binding. De afzender van een bericht dat deze limiet overschrijdt, ontvangt een SOAP-fout. De ontvanger verwijdert het bericht en maakt een vermelding van de gebeurtenis in het traceringslogboek. De standaardwaarde is 65536. |
naam | Een tekenreeks die de configuratienaam van de binding bevat. Deze waarde moet uniek zijn omdat deze wordt gebruikt als identificatie voor de binding. Vanaf .NET Framework 4 zijn bindingen en gedrag niet vereist om een naam te hebben. Zie Vereenvoudigde configuratie en Vereenvoudigde configuratie voor WCF-services voor meer informatie over standaardconfiguratie en naamloze bindingen en gedrag. |
openTimeout | Een TimeSpan waarde die het tijdsinterval aangeeft dat een open bewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
receiveTimeout | Een TimeSpan waarde die het opgegeven tijdsinterval aangeeft voor het voltooien van een ontvangstbewerking. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:10:00. |
sendTimeout | Een TimeSpan waarde die het tijdsinterval aangeeft dat een verzendbewerking moet worden voltooid. Deze waarde moet groter zijn dan of gelijk zijn aan Zero. De standaardwaarde is 00:01:00. |
transactionFlow | Een Booleaanse waarde die aangeeft of de binding stromende WS-transactions ondersteunt. De standaardwaarde is false . |
transactionProtocol | Hiermee geeft u het transactieprotocol moet worden gebruikt met deze binding. Geldige waarden zijn - OleTransactions - WS-AtomicTransactionOctober2004 De standaardwaarde is OleTransactions. Dit kenmerk is van het type TransactionProtocol. |
transferMode | Een TransferMode waarde die aangeeft of berichten worden gebufferd of gestreamd, of een aanvraag of antwoord. |
Onderliggende elementen
Element | Beschrijving |
---|---|
<Veiligheid> | Definieert de beveiligingsinstellingen voor de binding. Dit element is van het type NetNamedPipeBindingElement. |
<lezerQuota's> | Definieert de beperkingen voor de complexiteit van SOAP-berichten die kunnen worden verwerkt door eindpunten die met deze binding zijn geconfigureerd. Dit element is van het type XmlDictionaryReaderQuotasElement. |
Bovenliggende elementen
Element | Beschrijving |
---|---|
<Bindings> | Dit element bevat een verzameling standaard- en aangepaste bindingen. |
Opmerkingen
De NetNamedPipeBinding
genereert standaard een runtime communicatiestack, die gebruikmaakt van transportbeveiliging, named pipes voor berichtbezorging en een binaire berichtcodering. Deze binding is een geschikte door het WINDOWS Communication Foundation (WCF) door het systeem geleverde keuze voor communicatie op de computer. Het ondersteunt ook transacties.
De standaardconfiguratie voor de NetNamedPipeBinding
is vergelijkbaar met de configuratie die wordt geleverd door de NetTcpBinding
, maar dit is eenvoudiger omdat de WCF-implementatie alleen is bedoeld voor gebruik op de computer en er dus minder functies beschikbaar zijn. Het meest opvallende verschil is dat de securityMode
instelling alleen de None
opties en Transport
biedt. SOAP-beveiligingsondersteuning is geen inbegrepen optie. Het beveiligingsgedrag kan worden geconfigureerd met behulp van het optionele securityMode
kenmerk.
Voorbeeld
In het volgende voorbeeld wordt de binding netNamedPipeBinding gedemonstreerd, die communicatie tussen processen op dezelfde computer biedt. Named pipes werken niet op alle computers.
De binding wordt opgegeven in de configuratiebestanden voor de client en service. Het bindingstype wordt opgegeven in het binding
kenmerk van het <endpoint>
element. Als u de binding netNamedPipeBinding wilt configureren en enkele van de instellingen ervan wilt wijzigen, moet u een bindingsconfiguratie definiƫren. Het eindpunt moet naar de bindingsconfiguratie verwijzen op naam met een bindingConfiguration
kenmerk. In dit voorbeeld heet de bindingsconfiguratie Binding1.
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://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 http://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>