<netNamedPipeBinding>
Güvenli, güvenilir, makine içi çapraz işlem iletişimi için iyileştirilmiş bir bağlama tanımlar. Varsayılan olarak, güvenilirlik, aktarım güvenliği için aktarım güvenliği, ileti teslimi için adlandırılmış kanallar ve ikili ileti kodlama için WS-ReliableMessaging ile bir çalışma zamanı iletişim yığını oluşturur.
<Yapılandırma>
<system.serviceModel>
<Bağlama>
<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>
Öznitelikler ve Öğeler
Aşağıdaki bölümlerde öznitelikler, alt öğeler ve üst öğeler 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 eşit Zeroolmalı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 ana bilgisayar adını yoksayan değeridir StrongWildcard. |
maxBufferPoolSize | Bu bağlama için en büyük arabellek havuzu boyutunu belirten bir tamsayı. Varsayılan değer 524.288 bayttır (512 * 1024). 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 atık 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ı. Arabellek doluysa, arabellekte yeniden yer olana kadar fazla veriler temel yuvada kalır. Bu değer öznitelikten maxReceivedMessageSize küçük olamaz. 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 hale gelene kadar kuyruğa alınır. 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ır. Varsayılan değer 10'dur. |
maxReceivedMessageSize | Bu bağlama ile yapılandırılmış 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 girişini 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çinBasitleştirilmiş Yapılandırma ve Basitleştirilmiş Yapılandırma. |
openTimeout | Açık TimeSpan işlemin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya eşit Zeroolmalıdır. Varsayılan değer 00:01:00'dır. |
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 eşit Zeroolmalı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 eşit Zeroolmalıdır. Varsayılan değer 00:01:00'dır. |
transactionFlow | Bağlamanın akan WS-Transactions'i destekleyip desteklemediğini belirten bir 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 - WS-AtomicTransactionOctober2004 Varsayılan değer OleTransactions'dır. Bu öznitelik türündedir TransactionProtocol. |
transferMode | TransferMode İletilerin arabelleğe alınıp alınmayacağını, akışa alınıp alınmayacağını ya da bir istek ya da yanıt olup olmadığını belirten bir değer. |
Alt Öğeler
Öğe | Açıklama |
---|---|
<Güvenlik> | Bağlamanın güvenlik ayarlarını tanımlar. Bu öğe türündedir NetNamedPipeBindingElement. |
<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. |
Üst Öğeler
Öğe | Açıklama |
---|---|
<Bağlama> | Bu öğe standart ve özel bağlamalardan oluşan bir koleksiyonu barındırıyor. |
Açıklamalar
varsayılan NetNamedPipeBinding
olarak aktarım güvenliğini, ileti teslimi için adlandırılmış kanalları ve ikili ileti kodlamasını kullanan bir çalışma zamanı iletişim yığını oluşturur. Bu bağlama, makine içi iletişim için uygun bir Windows Communication Foundation (WCF) sistemi tarafından sağlanan seçenektir. İşlemleri de destekler.
için NetNamedPipeBinding
varsayılan yapılandırma, tarafından NetTcpBinding
sağlanan yapılandırmaya benzer, ancak WCF uygulaması yalnızca makine içi kullanıma yönelik olduğundan ve sonuç olarak daha az kullanıma sunulan özellik olduğundan daha basittir. En önemli fark, ayarın securityMode
yalnızca ve Transport
seçeneklerini sunmasıdırNone
. SOAP güvenlik desteği dahil bir seçenek değildir. güvenlik davranışı isteğe bağlı securityMode
özniteliği kullanılarak yapılandırılabilir.
Örnek
Aşağıdaki örnekte, aynı makinede işlemler arası iletişim sağlayan netNamedPipeBinding bağlaması gösterilmektedir. Adlandırılmış kanallar makineler arasında çalışmaz.
Bağlama, istemci ve hizmetin yapılandırma dosyalarında belirtilir. Bağlama türü öğesinin binding
özniteliğinde <endpoint>
belirtilir. netNamedPipeBinding bağlamasını yapılandırmak ve bazı ayarlarını değiştirmek istiyorsanız, bir bağlama yapılandırması tanımlamanız gerekir. Uç nokta, bağlama yapılandırmasına bir bindingConfiguration
öznitelikle ada göre başvurmalıdır. Bu örnekte bağlama yapılandırması Binding1 olarak adlandırılmıştır.
<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>