Udostępnij za pośrednictwem


WSHttpBinding

WsHttp przykład pokazuje, jak zaimplementować typową usługę i typowego klienta przy użyciu programu Windows Communication Foundation (WCF). Ten przykład składa się z programu konsolowego klienta (client.exe) i biblioteki usług hostowanej przez usługi Internet Information Services (IIS). Usługa implementuje kontrakt, który definiuje wzorzec komunikacji typu żądanie-odpowiedź. Kontrakt jest definiowany przez ICalculator interfejs, który uwidacznia operacje matematyczne (dodawanie, odejmowanie, mnożenie i dzielenie). Klient wysyła synchroniczne żądania do danej operacji matematycznej, a usługa odpowiada z wynikiem. Działanie klienta jest widoczne w oknie konsoli.

Uwaga / Notatka

Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

Ten przykład demonstruje ICalculator kontrakt przy użyciu <wsHttpBinding>. Konfiguracja tego powiązania została rozszerzona w pliku Web.config.

<bindings>
  <wsHttpBinding>
    <!--The following is the expanded configuration section for a-->
    <!--WSHttpBinding. Each property is configured with the default-->
    <!--value. See the ReliableSession, TransactionFlow, -->
    <!--TransportSecurity, and MessageSecurity samples in the WS -->
    <!--directory to learn how to configure these features. -->
    <binding name="Binding1"
              bypassProxyOnLocal="false"
              transactionFlow="false"
              hostNameComparisonMode="StrongWildcard"
              maxBufferPoolSize="524288"
              maxReceivedMessageSize="65536"
              messageEncoding="Text"
              textEncoding="utf-8"
              useDefaultWebProxy="true"
              allowCookies="false">
      <reliableSession ordered="true"
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Message">
        <message clientCredentialType="Windows"
                 negotiateServiceCredential="true"
                 algorithmSuite="Default"
                 establishSecurityContext="true" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

Na podstawowym elemencie binding wartość maxReceivedMessageSize pozwala na skonfigurowanie maksymalnego rozmiaru wiadomości przychodzącej (w bajtach). Wartość hostNameComparisonMode umożliwia skonfigurowanie, czy nazwa hosta jest uwzględniana podczas demultipleksacji komunikatów do usługi. Wartość messageEncoding umożliwia skonfigurowanie, czy używać kodowania Text lub MTOM dla komunikatów. Wartość textEncoding umożliwia skonfigurowanie kodowania znaków dla komunikatów. Wartość bypassProxyOnLocal umożliwia skonfigurowanie, czy używać serwera proxy HTTP do komunikacji lokalnej. Wartość transactionFlow określa, czy bieżąca transakcja jest przekazywana (jeśli operacja jest skonfigurowana do przepływu transakcji).

W elemecie <reliableSession> włączona wartość logiczna określa, czy włączono niezawodne sesje. Wartość ordered określa, czy kolejność komunikatów jest zachowywana. Wartość inactivityTimeout określa, jak długo sesja może być bezczynna przed jej przerwaniem.

W zakresie zabezpieczeń<> wartość określa, który tryb zabezpieczeń mode powinien być używany. W tym przykładzie używane są zabezpieczenia komunikatów, dlatego <komunikat> jest określony wewnątrz zabezpieczeń<>.

Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknie konsoli klienta. Naciśnij ENTER w oknie klienta, aby zamknąć klienta.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Aby skonfigurować, skompilować i uruchomić przykładowy program

  1. Zainstaluj ASP.NET 4.0 przy użyciu następującego polecenia.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Upewnij się, że wykonano procedurę instalacji One-Time dla przykładów programu Windows Communication Foundation.

  3. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w Kompilowanie przykładów Windows Communication Foundation.

  4. Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w Uruchamianie przykładów programu Windows Communication Foundation.