WCF-Diensthost (WcfSvcHost.exe)

Mit dem WCF-Diensthost (Windows Communication Foundation) (WcfSvcHost.exe) können Sie den Visual Studio-Debugger (F5) starten, um automatisch einen implementierten Dienst zu hosten und zu testen. Anschließend können Sie den Dienst mit dem WCF-Testclient (WcfTestClient.exe) oder Ihrem eigenen Client testen, um potenzielle Fehler zu identifizieren und zu beheben.

WCF-Diensthost

Der Host des WCF-Diensts listet die Dienste in einem Projekt des WCF-Diensts auf, lädt die Projektkonfiguration und instanziiert einen Host für jeden gefundenen Dienst. Das Tool wird über die Visual Studio-Dienstvorlage in den WCF-Dienst integriert und beim Debuggen des Projekts aufgerufen.

Wenn Sie den WCF-Diensthost verwenden, können Sie einen WCF-Dienst (in einem WCF-Dienstbibliotheksprojekt) hosten, ohne zusätzlichen Code schreiben oder einen bestimmten Host bei der Entwicklung bereitstellen zu müssen.

Hinweis

Der WCF-Diensthost unterstützt keine teilweise Vertrauenswürdigkeit. Wenn Sie einen WCF-Dienst in einer teilweise vertrauenswürdigen Umgebung nutzen möchten, dürfen Sie zu dessen Erstellung nicht die Vorlage „WCF-Dienstbibliotheksprojekt“ in Visual Studio verwenden. Erstellen Sie stattdessen in Visual Studio eine neue Website, indem Sie die Vorlage „WCF-Dienstwebsite“ auswählen, die den Dienst auf einem Webserver hosten kann, auf dem die teilweise WCF-Vertrauenswürdigkeit unterstützt wird.

Vom WCF-Diensthost gehostete Projekttypen

Der WCF-Diensthost kann als Host für die folgenden WCF-Dienstbibliotheksprojekttypen fungieren: WCF-Dienstbibliothek, sequenzielle Workflowdienstbibliothek, Zustandsautomat-Workflowdienstbibliothek und Syndication-Dienstbibliothek. Der WCF-Diensthost kann auch als Host für solche Dienste fungieren, die einem Dienstbibliotheksprojekt mit der Funktion Element hinzufügen hinzugefügt werden können. Dazu gehören WCF-Dienst, WF-Zustandsautomatdienst, sequenzieller WF-Dienst, XAML-WF-Zustandsautomatdienst und sequenzieller XAML-WF-Dienst.

Beachten Sie jedoch, dass Sie mit dem Tool den Host nicht konfigurieren können. Zur Konfiguration müssen Sie die Datei App.config manuell bearbeiten. Mit dem Tool können Sie auch nicht benutzerdefinierte Konfigurationsdateien validieren.

Achtung

Verwenden Sie zum Hosten von Diensten in einer Produktionsumgebung nicht den WCF-Diensthost, da dieser nicht für diesen Zweck konzipiert wurde. Der WCF-Diensthost unterstützt nicht die Anforderungen hinsichtlich Zuverlässigkeit, Sicherheit und Verwaltung für eine solche Umgebung. Verwenden Sie stattdessen den IIS, da er über optimale Zuverlässigkeit und Überwachungsfunktionen verfügt und die bevorzugte Lösung für Hostdienste ist. Nachdem die Entwicklung der Dienste abgeschlossen ist, sollten Sie die Dienste vom WCF-Diensthost zum IIS migrieren.

Szenarien für die Verwendung des WCF-Diensthosts in Visual Studio

Die folgende Tabelle enthält alle Parameter des Dialogfelds Befehlszeilenargumente, das Sie aufrufen können, indem Sie im Projektmappen-Explorer in Visual Studio mit der rechten Maustaste auf Ihr Projekt klicken und aus dem Kontextmenü Eigenschaften wählen. Öffnen Sie dann die Registerkarte Debuggen, und klicken Sie auf Projekt starten. Diese Parameter sind nützlich bei der Konfiguration des WCF-Diensthosts.

Parameter Bedeutung
/client Ein optionaler Parameter, der den Pfad zu einer EXE-Datei bestimmt, die nach dem Hosten der Dienste ausgeführt werden soll. Nach dem Hosten wird der WCF-Testclient gestartet.
/clientArg Legt eine Zeichenfolge als Argument fest, das an die benutzerdefinierte Clientanwendung geleitet wird.
/? Zeigt die Hilfe an.

Verwenden des WCF-Testclients

Nachdem Sie ein neues WCF-Dienstprojekt erstellt und zum Starten des Debuggers auf F5 gedrückt haben, beginnt der WCF-Diensthost mit dem Hosten aller Dienste in Ihrem Projekt. Der WCF-Testclient öffnet automatisch eine Liste der in der Konfigurationsdatei definierten Dienstendpunkte. Vom Hauptfenster aus können Sie die Parameter testen und den Dienst aufrufen.

Um sicherzustellen, dass der WCF-Testclient verwendet wird, klicken Sie im Projektmappen-Explorer in Visual Studio mit der rechten Maustaste auf Ihr Projekt, wählen Sie Eigenschaften und dann die Registerkarte Debuggen aus. Klicken Sie auf Projekt starten, und stellen Sie sicher, dass Folgendes im Dialogfeld Befehlszeilenargumente angezeigt wird.

/client:WcfTestClient.exe

Verwenden eines benutzerdefinierten Clients

Um einen benutzerdefinierten Client zu verwenden, klicken Sie im Projektmappen-Explorer in Visual Studio mit der rechten Maustaste auf Ihr Projekt, wählen Sie Eigenschaften und dann die Registerkarte Debuggen aus. Klicken Sie auf Projekt starten, und bearbeiten Sie den /client-Parameter im Dialogfeld Befehlszeilenargumente, um auf Ihren benutzerdefinierten Client zu verweisen, wie im folgenden Beispiel gezeigt.

/client:"path/CustomClient.exe"

Wenn Sie die Taste F5 drücken, um den Dienst erneut zu starten, startet der WCF-Diensthost automatisch den benutzerdefinierten Client, wenn Sie den Debugger aufrufen.

Mit dem /clientArg:-Parameter können Sie auch eine Zeichenfolge als Argument festlegen, das an die benutzerdefinierte Clientanwendung geleitet wird, wie im folgenden Beispiel gezeigt.

/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"

So können Sie beispielsweise bei Verwendung der Vorlage für die Syndication-Dienstbibliothek die folgenden Befehlszeilenargumente verwenden:

/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/

Keine Angabe des Clients

Um anzugeben, dass nach dem Hosten des WCF-Diensts kein Client verwendet wird, klicken Sie im Projektmappen-Explorer in Visual Studio mit der rechten Maustaste auf das Projekt, wählen Sie Eigenschaften und dann die Registerkarte Debuggen aus. Klicken Sie auf Projekt starten, und lassen Sie das Dialogfeld Befehlszeilenargumente leer.

Verwenden eines benutzerdefinierten Hosts

Um einen benutzerdefinierten Host zu verwenden, klicken Sie im Projektmappen-Explorer in Visual Studio mit der rechten Maustaste auf Ihr Projekt, wählen Sie Eigenschaften und dann die Registerkarte Debuggen aus. Klicken Sie auf Externes Programm starten, und geben Sie den vollständigen Pfad zum benutzerdefinierten Host ein. Über das Dialogfeld Befehlszeilenargumente können Sie Argumente angeben, die an den Host geleitet werden.

WCF-Diensthost-Benutzeroberfläche

Wenn Sie den WCF-Diensthost das erste Mal aufrufen (durch Drücken der Taste F5 in Visual Studio), wird das Fenster WCF-Diensthost automatisch geöffnet. Wenn der WCF-Diensthost ausgeführt wird, wird im Benachrichtigungsbereich das Anwendungssymbol angezeigt. Doppelklicken Sie auf das Symbol, um das Fenster WCF-Diensthost zu öffnen

Wenn beim Hosten des Dienstes Fehler auftreten, wird das WCF-Diensthost-Dialogfeld mit den entsprechenden Informationen geöffnet.

Das Hauptfenster des WCF-Diensthosts umfasst zwei Menüs:

  • Datei: Enthält die Befehle Schließen und Beenden. Wenn Sie auf Schließen klicken, wird das Dialogfeld des WCF-Diensthosts geschlossen, aber der Dienst wird weiterhin gehostet. Wenn Sie auf Beenden klicken, wird auch der WCF-Diensthost geschlossen. Dadurch werden auch alle gehosteten Dienste gestoppt.

  • Hilfe: Enthält den Befehl Info, mit dem Versionsinformationen aufgerufen werden. Es enthält auch den Befehl Hilfe, über den Sie eine Hilfedatei öffnen können.

Das Hauptfenster des WCF-Diensthosts umfasst zwei Bereiche:

  • Der erste Bereich ist der Bereich Dienst. Er enthält eine Liste mit grundlegenden Informationen zu allen Diensten. Zu diesen Informationen zählen:

    • Dienst: Listet alle Dienste auf.

    • Status: Listet den Status des Dienstes auf. Gültige Werte sind: „Gestartet“, „Beendet“ und „Fehler“.

    • Metadatenadresse: Zeigt die Metadatenadresse des Dienstes an.

  • Der zweite Bereich ist der Bereich Zusätzliche Informationen. Er enthält eine detaillierte Beschreibung zum Status des Dienstes, wenn die entsprechende Dienstzeile im Bereich Dienst ausgewählt ist. Wenn der Status auf Fehler gesetzt ist, können Sie am Bildschirm die vollständige Fehlermeldung anzeigen.

Beenden des WCF-Diensthostes

Sie können den WCF-Diensthost auf einem der folgenden vier Wege beenden:

  • Beenden Sie die Debuggen-Sitzung in Visual Studio.

  • Wählen Sie im Fenster WCF-Diensthost aus dem Menü Datei den Befehl Beenden.

  • Wählen Sie den Befehl Beenden aus dem Kontextmenü des Taskleistensymbols im Systembenachrichtigungsbereich des WCF-Diensthosts.

  • Beenden Sie ggf. den WCF-Testclient.

Verwenden des Diensthosts ohne Administratorberechtigung

Damit auch Benutzer*innen ohne Administratorberechtigung WCF-Dienste entwickeln können, wird während der Installation von Visual Studio eine ACL (Access Control List) für den Namespace „http://+:8731/Design_Time_Addresses"“ erstellt. Die ACL wird auf (UI) festgelegt, wodurch alle interaktiven, am Computer angemeldeten Benutzer eingeschlossen werden. Administratoren können dieser ACL Benutzer hinzufügen, Benutzer aus der ACL entfernen oder zusätzliche Ports öffnen. Mit dieser ACL haben Benutzer die Möglichkeit, den WCF-Dienst-Auto-Host ("wcfSvcHost.exe") zu verwenden, ohne dass ihnen Administratorberechtigungen zugewiesen werden müssen.

Mit dem Tool netsh.exe in Windows Vista unter dem erweiterten Administratorkonto können Sie die Zugriffsberechtigung ändern. Das folgende Beispiel veranschaulicht die Verwendung des Tools netsh.exe.

netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>

Weitere Informationen zum Tool netsh.exe finden Sie unter „Verwenden des Tools "Netsh.exe" und Befehlszeilenoptionen“.

Siehe auch