Freigeben über


Standard-Dienstverhalten

In diesem Beispiel wird veranschaulicht, wie Einstellungen für das Dienstverhalten konfiguriert werden können. Das Beispiel basiert auf dem Beispiel 'Erste Schritte', das den ICalculator-Dienstvertrag implementiert. In diesem Beispiel werden explizit Dienstverhaltensweisen und Vorgangsverhaltensweisen mit dem ServiceBehaviorAttribute-Attribut bzw. dem OperationBehaviorAttribute-Attribut definiert. Sie können Verhaltensweisen in Konfigurationsdateien oder imperativ im Code konfigurieren, wie dieses Beispiel zeigt.

In diesem Beispiel ist der Client eine Konsolenanwendung (.exe), und der Dienst wird von IIS (Internet Information Services, Internetinformationsdienste) gehostet.

ms751438.note(de-de,VS.100).gifHinweis:
Die Setupprozedur und die Erstellungsanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Die Dienstklasse gibt Verhaltensweisen mit dem ServiceBehaviorAttribute und dem OperationBehaviorAttribute an, wie im folgenden Beispielcode dargestellt. Alle angegebenen Werte sind 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;
    }
    ...
}

Dienstverhaltensweisen werden mit dem ServiceBehaviorAttribute-Attribut angegeben. In der folgenden Tabelle werden einige dieser Verhaltensweisen beschrieben.

Dienstverhalten Beschreibung

AutomaticSessionShutdown

Fährt eine Sitzung auf Anforderung des Clients automatisch herunter.

ConcurrencyMode

Gibt den Parallelitätsmodus für jede Dienstinstanz an.

InstanceContextMode

Gibt den Instanzkontextmodus an.

UseSynchronizationContext

Bestimmt, ob der bereitgestellte Synchronisierungskontext (falls festgelegt) verwendet werden soll. Verwenden Sie dies, wenn Sie kontrollieren möchten, ob in Windows Forms-Anwendungen ein WindowsFormsSynchronizationContext verwendet werden soll.

IncludeExceptionDetailInFaults

Bestimmt, ob allgemeine unbehandelte Ausführungsausnahmen in eine Fault<string> konvertiert und als Fehlermeldung gesendet werden sollen.

TransactionIsolationLevel

Gibt die Isolierungsebene für Transaktionen an.

ValidateMustUnderstand

Legt fest, ob unerwartete Nachrichtenheader eine Fehlerbedingung auslösen.

Vorgangsverhaltensweisen werden mit dem OperationBehaviorAttribute-Attribut angegeben. In der folgenden Tabelle werden einige dieser Verhaltensweisen beschrieben.

Vorgangsverhalten 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 annimmt.

ReleaseInstanceMode

Bestimmt, ob Dienstinstanzen zu Beginn oder am Ende des Dienstvorgangsaufrufs wiederverwendet werden.

Wenn Sie das Beispiel ausführen, werden die Anforderungen und Antworten für den Vorgang im Clientkonsolenfenster angezeigt. Die Verzögerung zwischen den Aufrufen resultiert von den in den Dienstvorgängen vorgenommenen Aufrufen von System.Threading.Thread.Sleep(). Diese Verhaltensweisen werden in den restlichen Verhaltensbeispielen ausführlicher erklärt. 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 richten Sie das Beispiel ein, erstellen es und führen es aus

  1. Stellen Sie sicher, dass Sie Einmaliges Setupverfahren für Windows Communication Foundation-Beispiele ausgeführt haben.

  2. Zum Erstellen der C#- oder Visual Basic .NET-Edition der Projektmappe befolgen Sie die unter Erstellen der Windows Communication Foundation-Beispiele aufgeführten Anweisungen.

  3. Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den unter Running the Windows Communication Foundation Samples aufgeführten Anweisungen.

ms751438.Important(de-de,VS.100).gif Hinweis:
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.

<Installationslaufwerk>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.

<Installationslaufwerk>:\WF_WCF_Samples\WCF\Basic\Services\Behaviors\Default