Udostępnij za pośrednictwem


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 truewartość . 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

  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 jednorazowej 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 temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

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