Condividi tramite


Sessione affidabile di Web Services

L'esempio wsReliableSession illustra l'uso di sessioni affidabili. Le sessioni affidabili forniscono supporto per la messaggistica e le sessioni affidabili. La messaggistica affidabile ritenta la comunicazione in caso di errore e consente di specificare garanzie di recapito, ad esempio l'arrivo in ordine di messaggi. Le sessioni mantengono lo stato per i client tra le chiamate. L'esempio implementa le sessioni per mantenere lo stato del client e specifica le garanzie di recapito in ordine.

Questo esempio si basa sull'Introduzione che implementa un servizio calcolatrice. Le funzionalità di sessione affidabili sono abilitate e configurate nei file di configurazione dell'applicazione per il client e il servizio.

In questo esempio il servizio è ospitato in Internet Information Services (IIS) e il client è un'applicazione console (.exe).

Annotazioni

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

L'esempio usa il wsHttpBinding. L'associazione viene specificata nei file di configurazione sia per il client che per il servizio. Il tipo di associazione viene specificato nell'attributo dell'elemento binding endpoint, come illustrato nella configurazione di esempio seguente.

<endpoint address=""
          binding="wsHttpBinding"
          bindingConfiguration="Binding1"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

L'endpoint contiene un bindingConfiguration attributo che fa riferimento a una configurazione di associazione denominata "Binding1". La configurazione dell'associazione consente sessioni affidabili impostando l'attributo enabled di <ReliableSession> su true. Le garanzie di recapito per le sessioni ordinate vengono controllate impostando l'attributo ordinato su true o false. Il valore predefinito è true.

<bindings>
    <wsHttpBinding>
        <binding name="Binding1">
            <reliableSession enabled="true" />
        </binding>
    </wsHttpBinding>
</bindings>

La classe di implementazione del servizio implementa l'istanza PerSession per mantenere un'istanza di classe separata per ogni client, come mostrato nel codice di esempio seguente.

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)] public class CalculatorService : ICalculator
{
    ...
}

Quando si esegue l'esempio, le richieste e le risposte dell'operazione vengono visualizzate nella finestra della console client. Premere INVIO nella finestra del client per chiudere il client.

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.

Per configurare, compilare ed eseguire l'esempio

  1. Installare ASP.NET 4.0 usando il comando seguente.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.

  3. Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.

  4. Per eseguire l'esempio in una configurazione con computer singolo o incrociato, seguire le istruzioni riportate in Esecuzione degli esempi di Windows Communication Foundation.