WCF-Diensthost (WcfSvcHost.exe)
Mit dem Windows Communication Foundation (WCF)-Diensthost (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 WCF-Diensthost listet die Dienste in einem WCF-Dienstprojekt auf, lädt die Projektkonfiguration und instanziiert einen Host für jeden gefundenen Dienst. Das Tool wird über die WCF-Dienstvorlage in Visual Studio 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 teilweise Vertrauenswürdigkeit nicht. Wenn Sie einen WCF-Dienst in einer teilweise vertrauenswürdigen Umgebung verwenden möchten, dürfen Sie zur Erstellung des Diensts nicht die WCF-Dienstbibliotheksprojektvorlage in Visual Studio verwenden. Erstellen Sie stattdessen in Visual Studio eine neue Website, indem Sie die WCF-Dienstwebsitevorlage auswählen, die den Dienst auf einem Webserver hosten kann, für den WCF teilweise Vertrauenswürdigkeit unterstützt. |
Vom WCF-Diensthost gehostete Projekttypen
Der WCF-Diensthost kann als Host für die folgenden WCF-Dienstbibliotheksprojekttypen fungieren: WCF-Dienstbibliothek, sequenzielle Workflowdienstbibliothek, Statuscomputer-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-Statuscomputerdienst, sequenzieller WF-Dienst, XAML-WF-Statuscomputerdienst 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.
Vorsicht: |
---|
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 mit der rechten Maustaste im Projektmappen-Explorer in Visual Studio auf Ihr Projekt klicken und aus dem Kontextmenü Eigenschaften wählen. Öffnen Sie dann die Registerkarte Debuggen, und klicken Sie auf Startprojekt. Diese Parameter sind nützlich bei der Konfiguration des WCF-Diensthosts.
Parameter | Bedeutung |
---|---|
|
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. |
|
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 mit der rechten Maustaste im Projektmappen-Explorer in Visual Studio auf das Projekt, und wählen Sie aus dem Kontextmenü Eigenschaften, und klicken Sie dann auf die Registerkarte Debuggen. Klicken Sie auf Startprojekt, und stellen Sie sicher, dass im Dialogfeld Befehlszeilenargumente Folgendes angezeigt wird.
/client:WcfTestClient.exe
Verwenden eines benutzerdefinierten Clients
Um einen benutzerdefinierten Client zu verwenden, klicken Sie im Projektmappen-Explorer in Visual Studio auf das Projekt, wählen Sie aus dem Kontextmenü Eigenschaften, und klicken Sie dann auf die Registerkarte Debuggen. Klicken Sie auf Startprojekt, und bearbeiten Sie die /client
-Parameter im Dialogfeld Befehlszeilenargumente, um auf den benutzerdefinierten Client zu zeigen, 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:https://localhost:8731/Design_Time_Addresses/Feed1/
Keine Angabe des Clients
Um anzugeben, dass kein Client nach dem Hosten des WCF-Diensts verwendet wird, klicken Sie mit der rechten Maustaste im Projektmappen-Explorer in Visual Studio auf das Projekt, und wählen Sie aus dem Kontextmenü Eigenschaften, und klicken Sie dann auf die Registerkarte Debuggen. Klicken Sie auf Startprojekt, 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 auf das Projekt, wählen Sie aus dem Kontextmenü Eigenschaften, und klicken Sie dann auf die Registerkarte Debuggen. 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 Diensts Fehler auftreten, wird das Dialogfeld WCF-Diensthost mit den entsprechenden Informationen geöffnet.
Das Hauptfenster WCF-Diensthost umfasst zwei Menüs:
Datei: Enthält die Befehle Schließen und Beenden. Wenn Sie auf Schließen klicken, wird das Dialogfeld WCF-Diensthost 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 WCF-Diensthost 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 Diensts auf. Gültige Werte sind: "Gestartet”, “Beendet” und “Fehler”.
Metadatenadresse: Zeigt die Metadatenadresse des Diensts an.
Der zweite Bereich ist der Bereich Zusätzliche Informationen. Er enthält eine detaillierte Beschreibung zum Status des Diensts, 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 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 (möglicherweise in englischer Sprache).