Comportamento predefinito del servizio
In questo esempio viene illustrato come configurare le impostazioni del comportamento del servizio. L'esempio si basa su Esempio della guida introduttiva, che implementa il contratto di servizio ICalculator
. In questo esempio vengono definiti in modo esplicito i comportamenti del servizio e i comportamenti dell'operazione utilizzando gli attributi ServiceBehaviorAttribute e OperationBehaviorAttribute. È possibile configurare i comportamenti nei file di configurazione oppure in modo imperativo nel codice, come illustrato in questo esempio.
In questo esempio, il client è un'applicazione console (.exe) e il servizio è ospitato da Internet Information Services (IIS).
Nota
La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine dell'argomento.
La classe del servizio specifica i comportamenti con ServiceBehaviorAttribute e OperationBehaviorAttribute, come illustrato nell'esempio di codice seguente. Tutti i valori specificati sono le impostazioni predefinite.
[ServiceBehavior(
AutomaticSessionShutdown=true,
ConcurrencyMode=ConcurrencyMode.Single,
InstanceContextMode=InstanceContextMode.PerSession,
IncludeExceptionDetailInFaults=false,
UseSynchronizationContext=true,
ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
[OperationBehavior(
TransactionAutoComplete=true,
TransactionScopeRequired=false,
Impersonation=ImpersonationOption.NotAllowed)]
public double Add(double n1, double n2)
{
System.Threading.Thread.Sleep(1600);
return n1 + n2;
}
...
}
I comportamenti del servizio vengono specificati con l'attributo ServiceBehaviorAttribute. Nella tabella seguente sono descritti alcuni di tali comportamenti.
Comportamento del servizio | Descrizione |
---|---|
Arresta automaticamente una sessione alla richiesta del client. |
|
Specifica la modalità di concorrenza per ogni istanza del servizio. |
|
Specifica la modalità di contesto dell'istanza. |
|
Determina se utilizzare il contesto di sincronizzazione fornito, se impostato. Utilizzare questa proprietà quando si desidera controllare se utilizzare un WindowsFormsSynchronizationContext nelle applicazioni Windows Form. |
|
Determina se le eccezioni di esecuzione generali non gestite devono essere convertite in una Fault<string> e inviate come messaggio di errore. |
|
Specifica il livello di isolamento per le transazioni. |
|
Determina se intestazioni impreviste del messaggio provocano una condizione di errore. |
I comportamenti dell'operazione vengono specificati utilizzando l'attributo OperationBehaviorAttribute. Nella tabella seguente sono descritti alcuni di tali comportamenti.
Comportamento dell'operazione | Descrizione |
---|---|
Determina se il completamento dell'operazione del servizio esegue il commit della transazione corrente. |
|
Determina se l'operazione del servizio si integra in una transazione propagata dal client. |
|
Determina se l'operazione del servizio rappresenta l'identità del chiamante. |
|
Determina se le istanze del servizio vengono riciclate all'inizio o alla fine della chiamata dell'operazione di servizio. |
Quando si esegue l'esempio, le richieste e le risposte dell'operazione vengono visualizzate nella finestra della console client. Il ritardo tra le chiamate è il risultato delle chiamate a System.Threading.Thread.Sleep() eseguite nelle operazioni del servizio. Gli altri esempi di comportamento illustrano questi comportamenti in maggiore dettaglio. Premere INVIO nella finestra del client per arrestare 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 impostare, compilare ed eseguire l'esempio
Assicurarsi di avere eseguito Procedura di installazione singola per gli esempi di Windows Communication Foundation.
Per compilare l'edizione in C# o Visual Basic .NET della soluzione, seguire le istruzioni in Generazione degli esempi Windows Communication Foundation.
Per eseguire l'esempio su un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.