Aracılığıyla paylaş


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

Ayrıca bkz.