WSHttpBinding
Dieses Beispiel zeigt, wie mithilfe von Windows Communication Foundation (WCF) ein typischer Dienst und ein typischer Client implementiert werden. Das Beispiel besteht aus einem Clientkonsolenprogramm (client.exe) und einer von IIS (Internet Information Services, Internetinformationsdienste) gehosteten Dienstbibliothek. Der Dienst implementiert einen Vertrag, der ein Anforderungs-Antwort-Kommunikationsmuster definiert. Der Vertrag wird von der ICalculator
-Schnittstelle definiert, die mathematische Operationen (Addieren, Subtrahieren, Multiplizieren und Dividieren) verfügbar macht. Der Client stellt synchrone Anforderungen an eine gegebene mathematische Operation, und der Dienst antwortet mit dem Ergebnis. Die Clientaktivität ist im Konsolenfenster sichtbar.
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\Binding\WS\wsHttp
|
Hinweis: |
---|
Die Setupprozedur und die Erstellungsanweisungen für dieses Beispiel befinden sich am Ende dieses Abschnitts. |
In diesem Beispiel wird der ICalculator
-Vertrag mit dem wsHttpBinding Element verfügbar gemacht. Die Konfiguration dieser Bindung wurde in der Datei "Web.config" ausgedehnt.
<bindings>
<wsHttpBinding>
<!--The following is the expanded configuration section for a-->
<!--WSHttpBinding. Each property is configured with the default-->
<!--value. See the ReliableSession, TransactionFlow, -->
<!--TransportSecurity, and MessageSecurity samples in the WS -->
<!--directory to learn how to configure these features. -->
<binding name="Binding1"
bypassProxyOnLocal="false"
transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288"
maxReceivedMessageSize="65536"
messageEncoding="Text"
textEncoding="utf-8"
useDefaultWebProxy="true"
allowCookies="false">
<reliableSession ordered="true"
inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Message">
<message clientCredentialType="Windows"
negotiateServiceCredential="true"
algorithmSuite="Default"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
Im binding
-Basiselement können Sie mit dem maxReceivedMessageSize
-Wert die maximale Größe einer eingehenden Nachricht (in Bytes) konfigurieren. Mit dem hostNameComparisonMode
-Wert können Sie konfigurieren, ob beim Demultiplexing von Nachrichten für den Dienst der Hostname eine Rolle spielt. Mit dem messageEncoding
-Wert können Sie konfigurieren, ob Text- oder MTOM-Codierung für Nachrichten verwendet werden soll. Mit dem textEncoding
-Wert können Sie die Zeichencodierung für Nachrichten konfigurieren. Mit dem bypassProxyOnLocal
-Wert können Sie konfigurieren, ob ein HTTP-Proxy zur lokalen Kommunikation verwendet werden soll. Der transactionFlow
-Wert konfiguriert, ob die aktuelle Transaktion übergeben wird (wenn ein Vorgang für den Transaktionsfluss konfiguriert ist).
Im <reliableSession> element-Element konfiguriert der aktivierte boolesche Wert, ob zuverlässige Sitzungen aktiviert sind. Der ordered
-Wert konfiguriert, ob die Nachrichtenreihenfolge beibehalten wird. Der inactivityTimeout
-Wert konfiguriert, wie lange sich eine Sitzung im Leerlauf befinden darf, bevor sie einen Fehler verursacht.
Im security element of wsHttpBinding konfiguriert der mode
-Wert, welcher Sicherheitsmodus verwendet werden soll. In diesem Beispiel wird die Nachrichtensicherheit verwendet. Daher wird message element of wsHttpBinding in security element of wsHttpBinding angegeben.
Wenn Sie das Beispiel ausführen, werden die Anforderungen und Antworten für den Vorgang 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 richten Sie das Beispiel ein, erstellen es und führen es aus
Installieren Sie ASP.NET 4.0 mithilfe des folgenden Befehls.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
Vergewissern Sie sich, dass Sie Einmaliges Setupverfahren für Windows Communication Foundation-Beispiele ausgeführt haben.
Zum Erstellen der C#- oder Visual Basic .NET-Edition der Projektmappe befolgen Sie die unter Erstellen der Windows Communication Foundation-Beispiele aufgeführten Anweisungen.
Wenn Sie das Beispiel in einer Konfiguration mit einem einzigen Computer oder computerübergreifend ausführen möchten, befolgen Sie die unter Running the Windows Communication Foundation Samples aufgeführten Anweisungen.