Aracılığıyla paylaş


<netNamedPipeBinding>

Güvenli, güvenilir, makine içi işlemler arası iletişim 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 içeren bir çalışma zamanı iletişim yığını oluşturur.

<configuration>
  <system.serviceModel>
    <bindings>
      <netNamedPipeBinding>

Sözdizimi

<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

Attributes

Özellik Description
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 buna Zeroeşit olmalı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'de 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 konak 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 arabellekler kullanılır. Arabellekleri her kullanışında oluşturmak ve yok etmek 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, arabellek yeniden yer bulana kadar fazla veriler temel yuvada kalır. Bu değer küçüktür maxReceivedMessageSize özniteliği olamaz. Varsayılan değer 65536'dır. Daha fazla bilgi için bkz. MaxBufferSize.
maxConnections (Maksimum Bağlantılar) Hizmetin oluşturacağı/kabul edeceği en fazla giden ve gelen bağlantı sayısını belirten 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ğlamayla 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 girdisini 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 buna Zeroeşit olmalı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 buna Zeroeşit olmalıdır. Varsayılan değer 00:10:00'dır.
sendTimeout TimeSpan Gönderme işleminin tamamlanması için sağlanan zaman aralığını belirten değer. Bu değer değerinden büyük veya buna Zeroeşit olmalıdır. Varsayılan değer 00:01:00'dır.
transactionFlow Bağlamanın akış WS-Transactions'ı destekleyip desteklemediğini belirten 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'tır. Bu öznitelik türündedir TransactionProtocol.
transferMode TransferMode İletilerin arabelleğe alınıp alınmayacağını veya akışa alınıp alınmayacağını ya da istek ya da yanıt olup olmadığını belirten bir değer.

Alt Öğeler

Öğe Description
<güvenlik> Bağlama için güvenlik ayarlarını tanımlar. Bu öğe türündedir NetNamedPipeBindingElement.
<readerQuotas> Bu bağlamayla 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 Description
<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) sistem tarafından sağlanan seçenektir. Ayrıca iş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 None seçeneklerini sunmasıdırTransport. SOAP güvenlik desteği dahil edilen bir seçenek değildir. Güvenlik davranışı isteğe bağlı securityMode özniteliği kullanılarak yapılandırılabilir.

Example

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<endpoint> özniteliğinde belirtilir. netNamedPipeBinding bağlamasını yapılandırmak ve bazı ayarlarını değiştirmek istiyorsanız, 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ı Bağlama1 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 bakınız