Udostępnij za pośrednictwem


<Netnamedpipebinding>

Definiuje powiązanie, które jest bezpieczne, niezawodne, zoptymalizowane pod kątem komunikacji między procesami na maszynie. Domyślnie generuje stos komunikacji środowiska uruchomieniowego z WS-ReliableMessaging na potrzeby niezawodności, zabezpieczeń transportu dla zabezpieczeń transferu, nazwanych potoków do dostarczania komunikatów i kodowania komunikatów binarnych.

<konfiguracja>
  <System.servicemodel>
    <Powiązania>
      <Netnamedpipebinding>

Składnia

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

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne

Atrybuty

Atrybut Opis
closeTimeout TimeSpan Wartość określająca interwał czasu określony dla zakończenia operacji zamknięcia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
Hostnamecomparisonmode Określa tryb porównania nazwy hosta HTTP używany do analizowania identyfikatorów URI. Ten atrybut jest typu HostNameComparisonMode, który wskazuje, czy nazwa hosta jest używana do dotarcia do usługi podczas dopasowywania identyfikatora URI. Wartość domyślna to StrongWildcard, która ignoruje nazwę hosta w dopasowaniu.
Maxbufferpoolsize Liczba całkowita określająca maksymalny rozmiar puli buforów dla tego powiązania. Wartość domyślna to 524 288 bajtów (512 * 1024). Wiele części programu Windows Communication Foundation (WCF) używa buforów. Tworzenie i niszczenie buforów za każdym razem, gdy są używane, jest kosztowne, a odzyskiwanie pamięci dla buforów jest również kosztowne. W przypadku pul buforów można pobrać bufor z puli, użyć go i wrócić do puli po zakończeniu pracy. W związku z tym unika się nakładu pracy podczas tworzenia i niszczenia buforów.
Maxbuffersize Dodatnia liczba całkowita określająca maksymalny rozmiar w bajtach buforu używanego do przechowywania komunikatów w pamięci. Jeśli bufor jest pełny, nadmiar danych pozostaje w gniazdie bazowym, aż bufor ponownie będzie miał miejsce. Ta wartość nie może być mniejsza niż maxReceivedMessageSize atrybut. Wartość domyślna to 65536. Aby uzyskać więcej informacji, zobacz MaxBufferSize.
Maxconnections Liczba całkowita określająca maksymalną liczbę połączeń wychodzących i przychodzących, które usługa utworzy/zaakceptuje. Połączenia przychodzące i wychodzące są liczone względem oddzielnego limitu określonego przez ten atrybut.

Połączenia przychodzące przekraczające limit są kolejkowane do momentu, gdy miejsce poniżej limitu stanie się dostępne.

Połączenia wychodzące przekraczające limit są kolejkowane do momentu, gdy miejsce poniżej limitu stanie się dostępne.

Wartość domyślna to 10.
Maxreceivedmessagesize Dodatnia liczba całkowita określająca maksymalny rozmiar komunikatu w bajtach, w tym nagłówki, które można odebrać w kanale skonfigurowanym za pomocą tego powiązania. Nadawca komunikatu przekraczającego ten limit otrzyma błąd PROTOKOŁU SOAP. Odbiorca pominie komunikat i tworzy wpis zdarzenia w dzienniku śledzenia. Wartość domyślna to 65536.
name Ciąg zawierający nazwę konfiguracji powiązania. Ta wartość powinna być unikatowa, ponieważ jest używana jako identyfikacja powiązania. Począwszy od .NET Framework 4, powiązania i zachowania nie muszą mieć nazwy. Aby uzyskać więcej informacji na temat domyślnej konfiguracji i bez nazw powiązań i zachowań, zobacz Uproszczone konfigurowanie i uproszczona konfiguracjadla usług WCF.
openTimeout TimeSpan Wartość określająca interwał czasu określony dla operacji otwierania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
Receivetimeout TimeSpan Wartość określająca interwał czasu określony dla wykonania operacji odbierania. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:10:00.
sendTimeout TimeSpan Wartość określająca interwał czasu określony dla operacji wysyłania do ukończenia. Ta wartość powinna być większa lub równa Zero. Wartość domyślna to 00:01:00.
transactionFlow Wartość logiczna określająca, czy powiązanie obsługuje przepływ transakcji WS-Transactions. Wartość domyślna to false.
Transactionprotocol Określa protokół transakcji do użycia z tym powiązaniem. Prawidłowe wartości to

-Oletransactions
- WS-AtomicTransactionOctober2004

Wartość domyślna to OleTransactions. Ten atrybut jest typu TransactionProtocol.
Transfermode TransferMode Wartość określająca, czy komunikaty są buforowane, czy przesyłane strumieniowo, czy też żądanie lub odpowiedź.

Elementy podrzędne

Element Opis
<Zabezpieczeń> Definiuje ustawienia zabezpieczeń powiązania. Ten element jest typu NetNamedPipeBindingElement.
<Readerquotas> Definiuje ograniczenia dotyczące złożoności komunikatów PROTOKOŁU SOAP, które mogą być przetwarzane przez punkty końcowe skonfigurowane za pomocą tego powiązania. Ten element jest typu XmlDictionaryReaderQuotasElement.

Elementy nadrzędne

Element Opis
<Powiązania> Ten element zawiera kolekcję powiązań standardowych i niestandardowych.

Uwagi

Element NetNamedPipeBinding generuje domyślnie stos komunikacji w czasie wykonywania, który używa zabezpieczeń transportu, nazwanych potoków do dostarczania komunikatów i kodowania komunikatów binarnych. To powiązanie jest odpowiednim wyborem systemu Windows Communication Foundation (WCF) na potrzeby komunikacji na maszynie. Obsługuje również transakcje.

Domyślna konfiguracja elementu NetNamedPipeBinding jest podobna do konfiguracji dostarczonej przez NetTcpBindingprogram , ale jest prostsza, ponieważ implementacja programu WCF jest przeznaczona tylko do użytku na maszynie, a w związku z tym jest mniej uwidocznionych funkcji. Najbardziej godną uwagi różnicą jest to, że securityMode ustawienie oferuje None tylko opcje i Transport . Obsługa zabezpieczeń protokołu SOAP nie jest włączoną opcją. Zachowanie zabezpieczeń można skonfigurować przy użyciu opcjonalnego securityMode atrybutu.

Przykład

W poniższym przykładzie pokazano powiązanie netNamedPipeBinding, które zapewnia komunikację między procesami na tym samym komputerze. Nazwane potoki nie działają na maszynach.

Powiązanie jest określone w plikach konfiguracji klienta i usługi. Typ powiązania jest określony w atrybucie binding<endpoint> elementu. Jeśli chcesz skonfigurować powiązanie netNamedPipeBinding i zmienić niektóre jego ustawienia, musisz zdefiniować konfigurację powiązania. Punkt końcowy musi odwoływać się do konfiguracji powiązania według nazwy z atrybutem bindingConfiguration . W tym przykładzie konfiguracja powiązania nosi nazwę 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>

Zobacz też