Konfigurieren von HTTP und HTTPSConfiguring HTTP and HTTPS

WCF-Dienste und -Clients können über HTTP und HTTPS kommunizieren.WCF services and clients can communicate over HTTP and HTTPS. Die HTTP/HTTPS-Einstellungen werden mit Internetinformationsdienste (IIS) oder mit einem Befehlszeilentool konfiguriert.The HTTP/HTTPS settings are configured by using Internet Information Services (IIS) or through the use of a command-line tool. Wenn ein WCF-Dienst unter IIS gehostet wird, können die HTTP- oder HTTPS-Einstellungen in IIS konfiguriert werden (mit dem Tool "inetmgr.exe").When a WCF service is hosted under IIS HTTP or HTTPS settings can be configured within IIS (using the inetmgr.exe tool). Bei einem selbst gehosteten WCF-Dienst werden die HTTP- oder HTTPS-Einstellungen mit einem Befehlszeilentool konfiguriert.If a WCF service is self-hosted, HTTP or HTTPS settings are configured by using a command-line tool.

Sie konfigurieren mindestens eine URL-Registrierung und fügen eine Firewallausnahme für die vom Dienst verwendete URL hinzu.At the minimum you will want to configure a URL registration, and add a Firewall exception for the URL your service will be using.

Welches Tool zum Konfigurieren der HTTP-Einstellungen verwendet wird, hängt vom Betriebssystem des Computers ab.The tool used to configure HTTP settings depends on the operating system the computer is running.

Bei Ausführung Windows Server 2003Windows Server 2003 oder Windows XPWindows XP, verwenden Sie die Tools "HttpCfg.exe".When running Windows Server 2003Windows Server 2003 or Windows XPWindows XP, use the HttpCfg.exe tool. Dieses Tool wird von Windows Server 2003Windows Server 2003 automatisch installiert.Windows Server 2003Windows Server 2003 automatically installs this tool. Bei Ausführung Windows XPWindows XP, Sie können das Tool herunterladen Windows XP Service Pack 2-Supporttools.When running Windows XPWindows XP, you can download the tool at Windows XP Service Pack 2 Support Tools. Weitere Informationen finden Sie unter Httpcfg-Übersicht.For more information, see Httpcfg Overview.

Bei Ausführung Windows VistaWindows Vista oder Windows 7, konfigurieren Sie diese Einstellungen, mit dem Tool Netsh.exe.When running Windows VistaWindows Vista or Windows 7, you configure these settings with the Netsh.exe tool.

Konfigurieren von NamespacereservierungenConfiguring Namespace Reservations

Eine Namespacereservierung weist die Rechte für einen Teil des HTTP-URL-Namespace einer bestimmten Gruppe von Benutzern zu.Namespace reservation assigns the rights for a portion of the HTTP URL namespace to a particular group of users. Eine Reservierung gibt diesen Benutzern das Recht, Dienste zu erstellen, die bei diesem Teil des Namespaces lauschen.A reservation gives those users the right to create services that listen on that portion of the namespace. Reservierungen sind URL-Präfixe, was bedeutet, dass die Reservierung dem Reservierungspfad untergeordnete Pfade abdeckt.Reservations are URL prefixes, meaning that the reservation covers all sub-paths of the reservation path. Namespacereservierungen eröffnen zwei Möglichkeiten, Platzhalter zu verwenden.Namespace reservations permit two ways to use wildcards. Die HTTP-Server-API-Dokumentation wird beschrieben, die Auflösungsreihenfolge von Namespace-Ansprüche, die Platzhalter verwenden.The HTTP Server API documentation describes the order of resolution between namespace claims that involve wildcards.

Eine laufende Anwendung kann eine ähnliche Anforderung stellen, um Namespaceregistrierungen hinzuzufügen.A running application can create a similar request to add namespace registrations. Registrierungen und Reservierungen konkurrieren um Teile des Namespaces.Registrations and reservations compete for portions of the namespace. Eine Reservierung kann haben Vorrang vor einer Registrierung entsprechend der Auflösungsreihenfolge der Auflösungsreihenfolge von Namespace-Ansprüche, die Platzhalter verwenden.A reservation may have precedence over a registration according to the order of resolution given in the order of resolution between namespace claims that involve wildcards. In diesem Fall blockiert die Reservierung in der laufenden Anwendung den Empfang von Anforderungen.In this case, the reservation blocks the running application from receiving requests.

Unter Windows XP oder Windows Server 2003Running Windows XP or Server 2003

Verwenden der httpcfg.exe set urlacl Befehl aus, um Namespacereservierungen zu ändern.Use the httpcfg.exe set urlacl command to change namespace reservations. Die Dokumentation der Windows-Supporttools erklärt die Syntax der Tools "Httpcfg.exe".The Windows Support Tools documentation explains the syntax for the Httpcfg.exe tool. Zur Änderung der Reservierungsrechte für einen Teil des Namespaces sind entweder Administratorrechte oder der Besitz dieses Teils des Namespaces erforderlich.Modifying the reservation rights for a portion of the namespace requires either administrative privileges or ownership of that portion of the namespace. Anfänglich gehört der gesamte HTTP-Namespace dem lokalen Administrator.Initially, the entire HTTP namespace belongs to the local administrator.

Hier die Syntax des Befehls Httpcfg mit der set urlacl-OptionThe following shows the syntax of the Httpcfg command with the set urlacl option

httpcfg set urlacl /u {http://URL:Port/ | https://URL:Port/} /aACL  

Der /u-Parameter ist für die Verwendung von set urlacl erforderlich.The /u parameter is required when using set urlacl. Der Parameter akzeptiert eine Zeichenfolge, die eine vollqualifizierte URL enthält, der als Datensatzschlüssel für die vorzunehmende Reservierung dient.It takes a string that contains a fully-qualified URL that serves as the record key for the reservation being made.

Der /a-Parameter ist auch für die Verwendung von set urlacl erforderlich.The /a parameter is also required when using set urlacl. Der Parameter akzeptiert eine Zeichenfolge, die eine Zugriffssteuerungsliste in Form einer SDDL-Zeichenfolge (Security Descriptor Definition Language) enthält.It takes a string that contains an Access Control List (ACL) in the form of a Security Descriptor Definition Language (SDDL) string.

Das folgende Beispiel zeigt, wie dieser Befehl verwendet wird.The following shows an example of using this command.

httpcfg.exe set urlacl /u http://myhost:8000/ /a "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"  

Unter Windows Vista, Windows Server 2008 R2 oder Windows 7Running Windows Vista, Windows Server 2008 R2 or Windows 7

Verwenden Sie bei der Ausführung unter Windows VistaWindows Vista, Windows Server 2008 R2 oder Windows 7 das Tool "Netsh.exe".If you are running on Windows VistaWindows Vista, Windows Server 2008 R2 or Windows 7, use the Netsh.exe tool. Das folgende Beispiel zeigt, wie dieser Befehl verwendet wird.The following shows an example of using this command.

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user  

Durch diesen Befehl wird eine URL-Reservierung für den angegebenen URL-Namespace für das Konto "DOMAIN\user" hinzugefügt.This command adds an URL reservation for the specified URL namespace for the DOMAIN\user account. Weitere Informationen zur Verwendung des Typs der Netsh-Befehl "Netsh http add Urlacl" in ein Eingabeaufforderungsfenster, und drücken Sie eingeben.For more information on using the netsh command type "netsh http add urlacl" in a command-prompt and press enter.

Konfigurieren einer FirewallausnahmeConfiguring a Firewall Exception

Beim Selbsthosting eines WCF-Diensts, der über HTTP kommuniziert, muss der Firewallkonfiguration eine Ausnahme hinzugefügt werden, die eingehende Verbindungen über eine bestimmte URL zulässt.When self-hosting a WCF service that communicates over HTTP, an exception must be added to the firewall configuration to allow inbound connections using a particular URL. Weitere Informationen finden Sie unter Öffnen eines Ports in der Windows-Firewall (Windows 7)For more information, see Open a port in Windows Firewall (Windows 7)

Konfigurieren eines SSL-ZertifikatsConfiguring SSL Certificates

Das Secure Sockets Layer (SSL)-Protokoll verwendet Zertifikate auf Client und Server, um Verschlüsselungsschlüssel zu speichern.The Secure Sockets Layer (SSL) protocol uses certificates on the client and server to store encryption keys. Der Server muss ein SSL-Zertifikat bereitstellen, wenn eine Verbindung hergestellt wird, damit der Client die Identität des Servers überprüfen kann.The server provides its SSL certificate when a connection is made so that the client can verify the server identity. Der Server kann ebenfalls ein Zertifikat vom Client anfordern, so dass eine wechselseitige Authentifizierung auf beiden Seiten der Verbindung möglich wird.The server can also request a certificate from the client to provide mutual authentication of both sides of the connection.

Zertifikate sind in einem zentralen Speicher entsprechend der IP-Adresse und der Anschlussnummer der Verbindung gespeichert.Certificates are stored in a centralized store according to the IP address and port number of the connection. Die spezielle IP-Adresse 0.0.0.0 stimmt mit jeder IP-Adresse für den lokalen Computer überein.The special IP address 0.0.0.0 matches any IP address for the local machine. Beachten Sie, dass der Zertifikatspeicher URLs nicht anhand der Pfade unterscheidet.Note that the certificate store does not distinguish URLs based on the path. Dienste mit der gleichen Kombination von IP-Adresse und Anschlussnummer müssen die gleichen Zertifikate verwenden, auch wenn sich der Pfad in der URL dieser Dienste unterscheidet.Services with the same IP address and port combination must share certificates even if the path in the URL for the services is different.

Schrittweise Anweisungen finden Sie unter Vorgehensweise: Konfigurieren eines Anschlusses mit einem SSL-Zertifikat.For step-by-step instructions, see How to: Configure a Port with an SSL Certificate.

Konfigurieren der IP-LauschlisteConfiguring the IP Listen List

Die HTTP-Server-API stellt erst dann eine Bindung mit einer IP-Adresse und einem Port her, wenn ein Benutzer eine URL registriert.The HTTP Server API only binds to an IP address and port once a user registers a URL. Standardmäßig verbindet die HTTP-Server-API mit dem Anschluss in der URL für alle IP-Adressen des Computers.By default, the HTTP Server API binds to the port in the URL for all of the IP addresses of the machine. Ein Konflikt tritt auf, wenn eine Anwendung, die die HTTP-Server-API nicht verwendet, sich vorher mit dieser Kombination von IP-Adresse und -Anschluss verbunden hat.A conflict arises if an application that does not use the HTTP Server API has previously bound to that combination of IP address and port. Die IP-Lauschliste ermöglicht WCF-Dienste mit Anwendungen zu koexistieren, die einen Port für die IP-Adressen des Computers zu verwenden.The IP Listen List allows WCF services to coexist with applications that use a port for some of the IP addresses of the machine. Enthält die IP-Lauschliste irgendwelche Einträge, verbindet die HTTP-Server-API nur mit den IP-Adressen, die in der Liste angegeben sind.If the IP Listen List contains any entries, the HTTP Server API only binds to those IP addresses that the list specifies. Die Änderung der IP-Lauschliste erfordert Administratorrechte.Modifying the IP Listen List requires administrative privileges.

Unter Windows XP oder Windows Server 2003Running Windows XP or Server 2003

Verwenden Sie das httpcfg-Tool, um die IP-Lauschliste zu ändern, wie im folgenden Beispiel gezeigt.Use the httpcfg tool to modify the IP Listen List, as shown in the following example. Die Dokumentation der Windows-Supporttools erklärt die Syntax der Tools "httpcfg.exe".The Windows Support Tools documentation explains the syntax for the httpcfg.exe tool.

httpcfg.exe set iplisten -i 0.0.0.0:8000  

Unter Windows Vista oder Windows 7Running Windows Vista or Windows 7

Verwenden Sie das netsh-Tool wie im folgenden Beispiel gezeigt, um die IP-Lauschliste zu ändern:Use the netsh tool to modify the IP Listen List, as shown in the following example.

netsh http add iplisten ipaddress=0.0.0.0:8000  

Andere KonfigurationseinstellungenOther Configuration Settings

Bei Verwendung der WSDualHttpBinding verwendet die Clientverbindung Standardwerte, die mit Namespacereservierungen und der Windows-Firewall kompatibel sind.When using WSDualHttpBinding, the client connection uses defaults that are compatible with namespace reservations and the Windows firewall. Wenn Sie sich dafür entscheiden, die Clientbasisadresse einer dualen Verbindung anzupassen, müssen Sie diese HTTP-Einstellungen auch auf dem Client mit der neuen Adresse konfigurieren.If you choose to customize the client base address of a dual connection, then you also must configure these HTTP settings on the client to match the new address.

Die HTTP-Server-API bietet einige erweiterte Konfigurationseinstellungen, die über HttpCfg nicht verfügbar sind.The HTTP Server API has some advanced configuration settings that are not available through HttpCfg. Diese Einstellungen sind in der Registrierung gespeichert und gelten für alle Anwendungen, die auf Systemen laufen, die HTTP-Server-APIs verwenden.These settings are maintained in the registry and apply to all applications running on the systems that use the HTTP Server APIs. Informationen zu diesen Einstellungen finden Sie unter Http.sys-registrierungseinstellungen für IIS.For information about these settings, see Http.sys registry settings for IIS. Die meisten Benutzer sollten diese Einstellungen nicht ändern müssen.Most users should not need to change these settings.

Probleme bezüglich Windows XPIssues Specific to Windows XP

IIS unterstützt keine Anschlussfreigabe unter Windows XPWindows XP.IIS does not support port sharing on Windows XPWindows XP. IIS ausgeführt wird, wenn ein WCF-Dienst versucht, einen Namespace mit dem gleichen Port verwenden kann der WCF-Dienst nicht gestartet.If IIS is running and a WCF service attempts to use a namespace with the same port, the WCF service fails to start. IIS und WCF, die standardmäßig auf Port 80 verwenden.IIS and WCF both default to using port 80. Ändern Sie die anschlusszuweisung für einen der Dienste, oder verwenden Sie die IP-Lauschliste einen Netzwerkadapter, die nicht von IIS verwendet den WCF-Dienst zuweisen.Either change the port assignment for one of the services or use the IP Listen List to assign the WCF service to a network adapter not used by IIS. IIS 6.0 und höher wurde für die Verwendung der HTTP-Server-APIs neu konzipiert.IIS 6.0 and later have been redesigned to use the HTTP Server APIs.

Siehe auchSee Also

WSDualHttpBinding
Vorgehensweise: Konfigurieren eines Ports mit einem SSL-ZertifikatHow to: Configure a Port with an SSL Certificate