Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Standardbeispiel veranschaulicht, wie Dienstverhaltenseinstellungen konfiguriert werden können. Das Beispiel basiert auf dem "Erste Schritte", der den ICalculator Servicevertrag implementiert. In diesem Beispiel werden Dienstverhalten und Vorgangsverhalten mithilfe der ServiceBehaviorAttribute- und OperationBehaviorAttribute-Attribute explizit definiert. Sie können Verhaltensweisen in Konfigurationsdateien oder imperativ im Code konfigurieren, wie in diesem Beispiel gezeigt wird.
In diesem Beispiel ist der Client eine Konsolenanwendung (.exe) und der Dienst wird von Internetinformationsdienste (IIS) gehostet.
Hinweis
Die Einrichtungsverfahren und Build-Anweisungen für dieses Beispiel befinden sich am Ende dieses Themas.
Die Dienstklasse gibt die Verhaltensweisen mit dem ServiceBehaviorAttribute und dem OperationBehaviorAttribute an, wie im folgenden Codebeispiel gezeigt. Alle angegebenen Werte sind die Standardwerte.
[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;
}
...
}
Dienstverhalten wird mit dem ServiceBehaviorAttribute Attribut angegeben. In der folgenden Tabelle werden einige dieser Verhaltensweisen beschrieben.
| Dienstverhalten | BESCHREIBUNG |
|---|---|
| AutomaticSessionShutdown | Beendet automatisch eine Sitzung auf Anforderung des Clients. |
| ConcurrencyMode | Gibt den Parallelitätsmodus für jede Dienstinstanz an. |
| InstanceContextMode | Gibt den Instanzkontextmodus an. |
| UseSynchronizationContext | Bestimmt, ob der bereitgestellte Synchronisierungskontext verwendet werden soll, wenn eins festgelegt ist. Verwenden Sie diese Vorgehensweise, wenn Sie steuern möchten, ob ein WindowsFormsSynchronizationContext in Windows Forms-Anwendungen verwendet werden soll. |
| IncludeExceptionDetailInFaults | Bestimmt, ob allgemeine unbehandelte Ausführungsfehler in eine Fault<string> umgewandelt und als Fehlermeldung gesendet werden sollen. |
| TransactionIsolationLevel | Gibt die Isolationsstufe für Transaktionen an. |
| ValidateMustUnderstand | Bestimmt, ob unerwartete Nachrichtenkopfzeilen einen Fehlerzustand verursachen. |
Vorgangsverhalten wird mithilfe des OperationBehaviorAttribute Attributs angegeben. In der folgenden Tabelle werden einige dieser Verhaltensweisen beschrieben.
| Betriebsverhalten | BESCHREIBUNG |
|---|---|
| TransactionAutoComplete | Bestimmt, ob bei Abschluss eines Dienstvorgangs ein Commit für die aktuelle Transaktion ausgeführt wird. |
| TransactionScopeRequired | Bestimmt, ob sich der Dienstvorgang in einem Clienttransaktionsfluss einträgt. |
| Impersonation | Bestimmt, ob der Dienstvorgang die Identität des Aufrufers imitiert. |
| ReleaseInstanceMode | Bestimmt, ob Dienstinstanzen zu Beginn oder am Ende des Dienstvorgangsaufrufs wiederverwendet werden. |
Wenn Sie das Beispiel ausführen, werden die Vorgangsanforderungen und -antworten im Clientkonsolenfenster angezeigt. Die Verzögerung zwischen den Aufrufen resultiert von den in den Dienstvorgängen vorgenommenen Aufrufen von System.Threading.Thread.Sleep(). In den restlichen Verhaltensbeispielen werden diese Verhaltensweisen ausführlicher erläutert. Drücken Sie im Clientfenster die EINGABETASTE, um den Client zu schließen.
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.
So können Sie das Beispiel einrichten, erstellen und ausführen
Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.
Um die C#- oder Visual Basic .NET-Edition der Lösung zu erstellen, befolgen Sie die Anweisungen in Building the Windows Communication Foundation Samples.
Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den Anweisungen unter Durchführen der Windows Communication Foundation-Beispiele.