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 "ReliableSessionOverHttps " veranschaulicht die Verwendung der SSL-Transportsicherheit mit zuverlässigen Sitzungen. Zuverlässige Sitzungen implementieren das WS-Reliable Messaging-Protokoll. Durch das Erstellen von WS-Sicherheit über zuverlässige Sitzungen können Sie eine sichere zuverlässige Sitzung erreichen. Manchmal können Sie jedoch stattdessen HTTP-Transportsicherheit mit SSL verwenden.
Beispieldetails
SSL stellt sicher, dass die Pakete selbst gesichert sind. Beachten Sie unbedingt, dass dies sich vom Sichern der zuverlässigen Sitzung mit WS-Secure Conversation unterscheidet.
Um eine zuverlässige Sitzung über HTTPS zu verwenden, müssen Sie eine benutzerdefinierte Bindung erstellen. Dieses Beispiel basiert auf dem Abschnitt Erste Schritte, der einen Rechnerdienst implementiert. Eine benutzerdefinierte Bindung wird mit dem zuverlässigen Sitzungsbindungselement und dem <httpsTransport> erstellt. Die folgende Konfiguration bezieht sich auf die benutzerdefinierte Bindung.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- use base address provided by host -->
<endpoint address=""
binding="customBinding"
bindingConfiguration="reliableSessionOverHttps"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed as http://localhost/servicemodelsamples/service.svc/mex-->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<customBinding>
<binding name="reliableSessionOverHttps">
<reliableSession />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Der Programmcode im Beispiel ist identisch mit dem des Diensts "Erste Schritte ". Sie müssen ein Zertifikat erstellen und es mithilfe des Assistenten für Webserverzertifikate zuweisen, bevor Sie das Beispiel erstellen und laufen lassen. Die Endpunktdefinition und Bindungsdefinition in den Konfigurationsdateieinstellungen ermöglichen die Verwendung von benutzerdefinierter Bindung, wie in der folgenden Beispielkonfiguration für den Client gezeigt.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<!-- this endpoint has an https: address -->
<endpoint name=""
address="https://localhost/servicemodelsamples/service.svc"
binding="customBinding"
bindingConfiguration="reliableSessionOverHttps"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</client>
<bindings>
<customBinding>
<binding name="reliableSessionOverHttps">
<reliableSession />
<httpsTransport />
</binding>
</customBinding>
</bindings>
</system.serviceModel>
</configuration>
Die angegebene Adresse verwendet das https:// Schema.
Da das in diesem Beispiel verwendete Zertifikat ein Testzertifikat ist, das mit Makecert.exeerstellt wurde, wird eine Sicherheitswarnung angezeigt, wenn Sie versuchen, auf eine https:-Adresse zuzugreifen, z https://localhost/servicemodelsamples/service.svc. B. über Ihren Browser. Damit der Windows Communication Foundation (WCF)-Client mit einem Testzertifikat arbeitet, wurde dem Client zusätzlicher Code hinzugefügt, um die Sicherheitswarnung zu unterdrücken. Dieser Code und die zugehörige Klasse sind nicht erforderlich, wenn Produktionszertifikate verwendet werden.
// This code is required only for test certificates like those created by Makecert.exe.
PermissiveCertificatePolicy.Enact("CN=ServiceModelSamples-HTTPS-Server");
Wenn Sie das Beispiel ausführen, werden die Vorgangsanforderungen und -antworten im Clientkonsolenfenster angezeigt. 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
Installieren Sie ASP.NET 4.0 mit dem folgenden Befehl.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableStellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.
Stellen Sie sicher, dass Sie die Iis-Serverzertifikatinstallationsanweisungen (Internet Information Services) ausgefü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.