2009-04-28 3 views
4

Ich versuche, einen Berechnungsdienst auf einer Reihe von Computern zu veröffentlichen, die von einem Anwendungsserver verwendet werden. Die Berechnungsserver sind statusbehaftet und müssen asynchrone Rückrufe ausführen können, sodass ich Einstellungen pro Sitzung über TCP verwenden möchte.WAS hostet einen WCF-Dienst mit net.tcp-Bindung

Die Dienstanwendung wurde mithilfe des WCF-Dienstanwendungsprojekttyps in VS2008 erstellt.

Da die Berechnung Service-Maschinen laufen Vista, so nach der Dokumentation, die ich gelesen habe, sollte ich WAS-Hosting verwenden können. Ich versuche, die Anweisungen von Microsoft zu diesem Thema zu folgen: Anfang

Install and configure WCF components

Host a WCF service in WAS

Aber ich laufe in Schwierigkeiten. Ich soll die .svc Datei in das virtuelle Verzeichnis meiner Anwendung legen. Aber da ich kein IIS-Hosting verwende, wie erstelle ich das virtuelle Verzeichnis? Die obigen Dokumente sind nicht klar.

Auch beim Versuch, den Befehl auszuführen, den net.tcp Zugriff auf meine Anwendung ermöglicht:

%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/<WCF Application>" /enabledProtocols:net.tcp 

Ich weiß nicht, was <WCF Application> mit zu ersetzen. Auch hier scheint es einen vorherigen Schritt zu geben, in dem man den Dienst in einer "IIS hosted-like" Weise veröffentlicht.

Ich habe eine Testanwendung erstellt, die versucht, den Dienst zu konsumieren. Wenn ich auf "Add Service Reference" klicke, entdeckt es meinen Dienst, kann aber keine Verbindung mit net.tcp herstellen.

Hat es hier jemand geschafft, WAS zu hosten und einen Dienst zu konsumieren? Hast du irgendwelche Hinweise für mich?

UPDATE: Ich habe jetzt versucht, net.tcp Bindungen zu der Website mit IIS-Manager hinzufügen (Rechtsklick -> Bindungen bearbeiten ...) aber die einzigen verfügbaren Protokolle im Dialogfeld hinzufügen ... http und https . Kein net.tcp in dieser Liste. Und ja, ich habe Nicht-HTTP-Aktivierungskomponenten installiert ... Sehr seltsam.

Antwort

5

Seit WAS Teil der IIS-Architektur ist, benötigen Sie ein virtuelles Verzeichnis in einer IIS Website (zum Beispiel ‚Default Web Site‘) zu erstellen, die von dem WCF-Dienst physischen Standort Punkte Sie hosten. Dann müssen Sie in diesem virtuellen Verzeichnis eine Anwendung erstellen, wie Sie es für eine ASP.NET-Website oder einen ASMX-Webdienst tun würden.
Sie können dies einfach mithilfe von IIS 7 Management-Konsole tun.

Sie können die Details darüber lesen, wie WAS in IIS7 here arbeitet.
Für eine mehr Schritt-für-Schritt Leitfaden für WAS-Hosting einen Blick auf this article.

+0

Danke, habe ich dies tun, um den IIS-Manager. Net.tcp ist jedoch nicht im Dialogfeld Bindungen bearbeiten verfügbar. Ich verstehe nicht, warum, seit ich nicht-HTTP-Aktivierung hinzugefügt habe. –

1

Sie müssen die Bindung net.tcp der Bindung der Anwendung in IIS hinzufügen.

Klicken Sie mit der rechten Maustaste auf das virtuelle Verzeichnis/Anwendung in IIS -> Anwendung verwalten -> Erweiterte Einstellungen.

Fügen Sie im Enabled Protocols Teil net.tcp und voila !!

Verwandte Themen