Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nell'esempio predefinito viene illustrato come configurare le impostazioni del comportamento del servizio. L'esempio è basato su Getting Started, che implementa il ICalculator contratto di servizio. Questo esempio definisce in modo esplicito i comportamenti del servizio e i comportamenti delle operazioni usando gli ServiceBehaviorAttribute attributi e OperationBehaviorAttribute . È possibile configurare i comportamenti nei file di configurazione o 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).
Annotazioni
La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.
La classe del servizio specifica i comportamenti con ServiceBehaviorAttribute e , OperationBehaviorAttribute come illustrato nell'esempio di codice seguente. Tutti i valori specificati sono i valori predefiniti.
[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 vengono descritti alcuni di questi comportamenti.
| Comportamento del servizio | Descrizione |
|---|---|
| AutomaticSessionShutdown | Arresta automaticamente una sessione alla richiesta del client. |
| ConcurrencyMode | Specifica la modalità di concorrenza per ogni istanza del servizio. |
| InstanceContextMode | Specifica la modalità di contesto dell'istanza. |
| UseSynchronizationContext | Determina se utilizzare il contesto di sincronizzazione fornito, se impostato. Utilizzare questa opzione quando si desidera controllare se utilizzare un oggetto WindowsFormsSynchronizationContext nelle applicazioni Windows Form. |
| IncludeExceptionDetailInFaults | Determina se le eccezioni generali di esecuzione non gestite devono essere convertite in un Fault<string> e inviate come messaggio di errore. |
| TransactionIsolationLevel | Specifica il livello di isolamento per le transazioni. |
| ValidateMustUnderstand | Determina se le intestazioni di messaggio impreviste causano una condizione di errore. |
I comportamenti dell'operazione vengono specificati usando l'attributo OperationBehaviorAttribute . Nella tabella seguente vengono descritti alcuni di questi comportamenti.
| Comportamento dell'operazione | Descrizione |
|---|---|
| TransactionAutoComplete | Determina se il completamento dell'operazione del servizio commette la transazione corrente. |
| TransactionScopeRequired | Determina se l'operazione del servizio viene inserita in una transazione con flusso client. |
| Impersonation | Determina se l'operazione del servizio impersona l'identità del chiamante. |
| ReleaseInstanceMode | Determina se le istanze del servizio vengono riciclate all'inizio o alla fine della chiamata all'operazione del 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 è dovuto alle chiamate a System.Threading.Thread.Sleep() effettuate nelle operazioni del servizio. Il resto degli esempi di comportamento spiega questi comportamenti in modo più dettagliato. 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
Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.
Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.
Per eseguire l'esempio in una configurazione con computer singolo o incrociato, seguire le istruzioni riportate in Esecuzione degli esempi di Windows Communication Foundation.