Sesja niezawodna WS
Przykład wsReliableSession demonstruje użycie niezawodnych sesji. Niezawodne sesje zapewniają obsługę niezawodnych komunikatów i sesji. Niezawodna obsługa komunikatów ponawia próbę komunikacji po awarii i umożliwia określenie gwarancji dostarczania, takich jak odbieranie komunikatów w kolejności. Sesje zachowują stan dla klientów między wywołaniami. Przykład implementuje sesje do obsługi stanu klienta i określa w kolejności zapewnienia dostarczania.
Ten przykład jest oparty na wprowadzenie , który implementuje usługę kalkulatora. Funkcje niezawodnej sesji są włączone i konfigurowane w plikach konfiguracji aplikacji dla klienta i usługi.
W tym przykładzie usługa jest hostowana w usługach Internet Information Services (IIS), a klient jest aplikacją konsolową (.exe).
Uwaga
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
W przykładzie użyto metody wsHttpBinding
. Powiązanie jest określone w plikach konfiguracji zarówno dla klienta, jak i usługi. Typ powiązania jest określony w atrybucie elementu binding
punktu końcowego, jak pokazano w poniższej przykładowej konfiguracji.
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Punkt końcowy zawiera bindingConfiguration
atrybut, który odwołuje się do konfiguracji powiązania o nazwie "Binding1". Konfiguracja powiązania umożliwia niezawodne sesje przez ustawienie enabled
atrybutu <reliableSession> na true
wartość . Gwarancje dostarczania dla uporządkowanych sesji są kontrolowane przez ustawienie uporządkowanego atrybutu na true
lub false
. Wartość domyślna to true
.
<bindings>
<wsHttpBinding>
<binding name="Binding1">
<reliableSession enabled="true" />
</binding>
</wsHttpBinding>
</bindings>
Klasa implementacji usługi implementuje PerSession instancing w celu zachowania oddzielnego wystąpienia klasy dla każdego klienta, jak pokazano w poniższym przykładowym kodzie.
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)] public class CalculatorService : ICalculator
{
...
}
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.