WCF-Dienstpublishing

Das Windows Communication Foundation (WCF)-Dienstpublishing unterstützt Sie auf Ihrem Weg von der frühen Entwicklungsumgebung, die vom WCF-Diensthost und dem WCF-Testclient gebildet wird, zur eigentlichen Bereitstellung der Anwendung in einer Produktionsumgebung zu Testzwecken. Bevor Sie sich auf einen finalen Bereitstellungsplan festlegen, können Sie mithilfe des Windows Communication Foundation (WCF)-Dienstpublishings sicherstellen, dass der WCF-Dienst ordnungsgemäß funktioniert und für die Veröffentlichung bereit ist. Auch können Sie Ihre WCF-Dienstbibliotheken zu Testzwecken an einer Reihe von Orten bereitstellen.

Unterstützte Dienste und Zielorte

Das WCF-Dienstpublishing ermöglicht das Veröffentlichen von WCF-Diensten, die auf der Grundlage der WCF-Dienstbibliotheksvorlagen erstellt wurden, sowie der entsprechenden Elementvorlagen. Hierzu zählen unter anderem Folgende:

  • WCF-Dienstbibliotheksvorlage mit Elementvorlage

  • Dienstbibliotheksvorlage für sequenziellen Workflow mit Elementvorlage

  • Dienstbibliotheksvorlage für Zustandsautomatworkflow mit Elementvorlage

  • Syndication-Dienstbibliothek

Diese Dienstvorlagen befinden sich unter Datei -> Neues Projekt -> Visual Basic oder Visual C# -> WCF.

Der Dienst kann an den folgenden Zielorten veröffentlicht werden:

  • Lokale IIS

  • Dateisystem

  • FTP-Site

  • Remotesite

Verwenden des WCF-Dienstpublishings

Führen Sie zum Bereitstellen einer Dienstimplementierung die folgenden Schritte aus:

  1. Öffnen Sie Visual Studio mit erweiterten Berechtigungen (klicken Sie mit der rechten Maustaste auf die ausführbare Datei, und starten Sie sie mit "Als Administrator ausführen"). Wenn Sie IIS 7.0 oder höher verwenden, vergewissern Sie sich, dass Sie die Komponente "IIS 6-Metabasis und IIS 6-Konfigurationskompatibilität" über "Windows-Funktionen ein- oder ausschalten" in der Systemsteuerung installiert haben.

  2. Öffnen Sie ein Dienstprojekt, wählen Sie im Hauptmenü Erstellen-><Projektname> veröffentlichen aus, oder klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie anschließend auf Veröffentlichen.

  3. Das Fenster Veröffentlichen wird angezeigt. Klicken Sie auf die Schaltfläche ..., um den Zielort anzugeben, an dem der Dienst bereitgestellt werden soll. Sie können entscheiden, ob die Anwendung für die lokalen IIS, für das Dateisystem, für eine FTP-Site oder für eine Remotesite bereitgestellt werden soll. Wenn Sie die Anwendung für IIS lokal bereitstellen, können Sie Ihre Website auswählen und die Webanwendung darunter erstellen. Klicken Sie dazu in der oberen rechten Ecke auf das Symbol Neue Webanwendung erstellen.

  4. Wenn Sie im Hauptfenster auf Veröffentlichen klicken, wird die Anwendung von Visual Studio am angegebenen Zielort bereitgestellt, und die Web.config-Datei, die SVC-Datei und die Assemblydateien werden in das Zielverzeichnis kopiert. . Der Name der SVC-Datei lautet "ProjectName.ServiceName.svc". Nach der erfolgreichen Veröffentlichung des Diensts finden Sie im Visual Studio-Ausgabefenster einen Hotlink ähnlich dem folgenden Beispiel: "Verbinden mit http:\/\/localhost\/WebApplicationFolderName". Sie können STRG gedrückt halten und auf den Link klicken, um in Visual Studio eine Browserseite zu öffnen, in der die Dienstverzeichnisstruktur angezeigt wird.

    Wenn die Website nicht geöffnet werden kann, liegt dies möglicherweise daran, dass der Verzeichnisbrowser in IIS nicht aktiviert ist. Befolgen Sie die Tipps im Abschnitt "Mögliche Vorgehensweise", um ihn zu aktivieren. Alternativ können Sie auch direkt "http:\/\/localhost\/WebApplicationFolderName\/ProjectName.ServiceName.svc" eingeben, um die Dienstseite anzuzeigen.

Mithilfe von Veröffentlichen können Sie angeben, ob Sie die Assembly- und Konfigurationsdateien und die SVC-Datei für alle im Projekt definierten Dienste an den Zielort kopieren und alle vorhandenen Dateien am Zielort überschreiben möchten.

Wenn Sie die Anwendung lokal für IIS bereitgestellt haben, treten möglicherweise Fehler in Bezug auf das IIS-Setup auf. Stellen Sie sicher, dass IIS ordnungsgemäß installiert ist. Sie können im Browser "http:\/\/localhost" eingeben und überprüfen, ob die IIS-Standardseite aufgerufen wird. In einigen Fällen können die Probleme auch durch eine fehlerhafte Registrierung von ASP.NET oder WCF in IIS verursacht werden. Öffnen Sie die Visual Studio-Eingabeaufforderung, und führen Sie den Befehl "aspnet_regiis.exe -ir" aus, um ASP.NET-Registrierungsprobleme zu beheben, oder führen Sie den Befehl "ServiceModelReg.exe –ia" aus, um WCF-Registrierungsprobleme zu beheben.

Generierte Dateien für die Veröffentlichung

Damit eine WCF-Dienstbibliothek im Internet gehostet werden kann, müssen die folgenden Dateien durch das Tool erstellt werden: Assemblydateien, Web.config-Datei und SVC-Datei. Alle Dateien werden an den Zielort kopiert. Anschließend wird der Dienst veröffentlicht.

Assemblydateien

Wenn Sie einen WCF-Dienst mithilfe dieses Tools veröffentlichen, wird automatisch zunächst der Dienst erstellt; die Assemblydateien werden erst nach der Erstellung im Dienstprojekt generiert.

SVC-Datei

Durch den Veröffentlichungsvorgang wird für jeden WCF-Dienst eine SVC-Datei generiert. Aus Gründen der Versionsgültigkeit spielt es dabei keine Rolle, ob die Datei bereits vorhanden ist. Zwei unterschiedliche Arten von SVC-Dateien stehen zur Verfügung: eine für die WCF-Dienstbibliothek und die Syndication-Dienstbibliothek und eine weitere für die Dienstbibliotheken für den sequenziellen Workflow und den Zustandsautomatworkflow. Die generierte SVC-Datei wird in den Stammordner am Zielort kopiert.

Web.config-Datei

Bei jeder Veröffentlichung eines Dienstprojekts an einem bestimmten Zielort wird eine Web.config-Datei erstellt.

Die generierte Web.config-Datei enthält Webabschnitte für das Webhosting sowie den Inhalt von App.config für die WCF-Dienstbibliothek mit folgenden Änderungen:

  • Die Basisadresse wird ausgeschlossen.

  • Einstellungen im <diagnostics>-Element werden übersprungen, um die Ablaufverfolgungseinstellungen der Zielplattform beizubehalten.

Veröffentlichen von WCF-Diensten mit Nicht-HTTP-Bindungen in IIS

Wenn Sie IIS 7.0 oder höher verwenden, können Sie WCF-Dienste mit Nicht-HTTP-Bindungen in IIS veröffentlichen. Hierfür müssen einige vorbereitende Konfigurationsschritte ausgeführt werden. Weitere Informationen finden Sie in den Themen unter Hosten in WAS (Windows Process Activation Service).

Sicherheit

Für eine lokale Veröffentlichung in IIS sind Administratorberechtigungen erforderlich, da IIS unter einem Administratorkonto ausgeführt werden muss. Wird das WCF-Dienstpublishing von einem Benutzer ohne Administratorberechtigungen geöffnet, sind die IIS nicht als Zielort verfügbar. Die Veröffentlichung für Dateisystem, FTP-Site und Remotesite ist ohne Administratorberechtigungen möglich.

Siehe auch

WCF Visual Studio-Vorlagen
WCF-Diensthost (WcfSvcHost.exe)
WCF-Testclient (WcfTestClient.exe)