Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
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 One-Time 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 Kompilowanie przykładów Windows Communication Foundation.
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.