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
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
Ten przykład uwidacznia ICalculator
kontrakt przy użyciu biblioteki <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 binding
elemecie maxReceivedMessageSize
wartość umożliwia skonfigurowanie maksymalnego rozmiaru komunikatu przychodzącego (w bajtach). Wartość hostNameComparisonMode
umożliwia skonfigurowanie, czy nazwa hosta jest brana pod uwagę podczas de multipleksowania 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 przepływany (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 błędem.
W zabezpieczeniach <>wartość konfiguruje tryb zabezpieczeń, mode
który ma 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 klawisz 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ład
Zainstaluj ASP.NET 4.0 przy użyciu następującego polecenia.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).
Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.