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 Beispiel "MultipleContracts " veranschaulicht, wie mehrere Verträge für einen Dienst implementiert werden und wie Endpunkte für die Kommunikation mit jedem der implementierten Verträge konfiguriert werden. Dieses Beispiel basiert auf den Ersten Schritten. Der Dienst wurde geändert, um zwei Verträge zu definieren, den ICalculator Vertrag und den ICalculatorSession Vertrag.
Hinweis
Die Einrichtungsverfahren und Build-Anweisungen für dieses Beispiel befinden sich am Ende dieses Themas.
Die Dienstklasse implementiert sowohl den ICalculator-Vertrag als auch den ICalculatorSession-Vertrag. Da für einen der Verträge eine Sitzung erforderlich ist, verwendet der Dienst den PerSession Instanzmodus, um den Zustand während der Lebensdauer der Sitzung beizubehalten.
Die Dienstkonfiguration wurde geändert, um zwei Endpunkte zu definieren, um jeden Vertrag verfügbar zu machen. Der ICalculator-Endpunkt wird an der Basisadresse mit einer basicHttpBinding verfügbar gemacht. Der ICalculatorSession-Endpunkt wird an der Basisadresse/in der Sitzung mit einer wsHttpBinding verfügbar gemacht, wobei für das bindingConfiguration-Attribut BindingWithSession festgelegt ist, wie in der folgenden Beispielkonfiguration gezeigt.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- ICalculator endpoint is exposed using BasicBinding at the base
address provided by host:
http://localhost/servicemodelsamples/service.svc -->
<endpoint address=""
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- ICalculatorSession endpoint is exposed using BindingWithSession
at {baseaddress}/session:
http://localhost/servicemodelsamples/service.svc/session -->
<endpoint address="session"
binding="wsHttpBinding"
bindingConfiguration="BindingWithSession"
contract="Microsoft.ServiceModel.Samples.ICalculatorSession" />
...
</service>
Der generierte Clientcode enthält nun eine Clientklasse für den ursprünglichen ICalculator Vertrag und den neuen ICalculatorSession Vertrag. Die Clientkonfiguration und der Code wurden so geändert, dass sie mit jedem Vertrag am entsprechenden Dienstendpunkt kommunizieren.
Der Client ist eine Konsolen-Windows-Anwendung (.exe). Der Dienst wird von Internetinformationsdienste (INTERNET Information Services, IIS) gehostet.
Im Clientkonsolenfenster werden die Vorgänge angezeigt, die an die einzelnen Endpunkte gesendet werden, zuerst der grundlegende Endpunkt, gefolgt vom sicheren Endpunkt.
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.