Teilen über


Standarddienstverhalten

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

  1. Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.

  2. Um die C#- oder Visual Basic .NET-Edition der Lösung zu erstellen, befolgen Sie die Anweisungen in Building the Windows Communication Foundation Samples.

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