Wie host WCF durch die TCP-ports?
Wie kann ich host WCF-Dienste, die über TCP-Ports, und wie kann ich es hören und Dienste verwenden, die über diese TCP-ports?
Ist, abgesehen von der net.tcp-Bindung, gibt es eine Möglichkeit, zu hosten und zu konsumieren, die Verwendung der TCP-ports?
also im Grunde,in windows xp hosting-n Konsum getan werden kann in 3 Möglichkeiten 1.self-hosting 2.IIS 3.als Windows-Dienst so öffnet einen TCP-port und verbraucht,kommt unter self-hosting oder ist es eine andere Art von hosting-n verwenden von wcf-Diensten oder gibt es eine andere Möglichkeit ich.e unter TCP?
InformationsquelleAutor kurozakura | 2009-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
In WCF können Sie host-service selbst, durch die Erzeugung einer Instanz der ServiceHost-Klasse, konfigurieren Sie es mit der richtigen Endpunkte und die service-Implementierung, die Sie ausliefern wollen, und rufen Sie
Open
. Dies wird als self-hosting, weil Sie Gastgeber der service (und der port-Listener) aus, die innerhalb Ihrer eigenen Anwendung.Alternativ können Sie host-Ihren Dienst im IIS, aber Sie sollten sich bewusst sein, dass, während Sie kann als host für WCF im IIS 6, Sie können nur auf host HTTP und HTTPS-Endpunkte. Wenn Sie wollen host-TCP-Endpunkte im IIS (das ist eine gute Idee), müssen Sie IIS 7.
Lesen Sie mehr hier.
Windows XP nicht IIS 7 ausgeführt wird, so können Sie nicht der host eine TCP-Endpunkt auf IIS unter XP. Sie können einen Windows-Dienst hosten eines WCF-Diensts, aber das ist nur ein weiteres Beispiel für Self-Hosting.
InformationsquelleAutor Mark Seemann
können Sie einen beliebigen port verwenden (vorausgesetzt, Sie bekam die Erlaubnis, für Sie) zu hosten Sie Ihre wcf-Dienste. bei Verwendung von IIS host für wcf-Dienste ist es etwas anders, aber in self-hosting-Umgebungen, fügen Sie einfach die port-Nummer, um Ihre base-Adresse und schon sind Sie fertig. (bei Verwendung von Vista oder Server 2008 verwenden, müssen Sie den Zugriff auf den port, wenn Sie nicht mit Administratorrechten ausgeführt werden (z.B. mit dem Befehl " netsh))
verwenden, z.B. port 1337 für einen http-service (oder auch net.tcp) einfach ":1337/", um Ihre base-Adresse und der rest wird für Sie erledigt.
Mehr info auf der Verwendung von netsh zum öffnen eines Ports hier: msdn.microsoft.com/en-us/library/ms733768.aspx
InformationsquelleAutor Joachim Kerschbaumer
Kann dies helfen,
InformationsquelleAutor Ahmed Said
Alle HTTP-Bindungen arbeiten mit TCP als transport-layer. So könnten Sie HTTP-Bindungen und IIS.6 zum hosten eines WCF-Dienst läuft auf einem festgelegten TCP-port.
Hier ist ein walktrough auf, wie dies zu erreichen:
den Dienst so konfigurieren, führen Sie auf den gewünschten port aus der Konfigurationsdatei (oder code):
im IIS eine Website erstellen (oder virtuelles Verzeichnis) aus und konfigurieren Sie es verbindlich für die Ausführung auf den Anschluss, den Sie gewählt haben in Ihrem baseAddress-service-Konfiguration (8000 für das Beispiel oben).
Das Ergebnis der oben genannten Schritte ist ein WCF-Dienst läuft auf dem TCP port 8000 für transport layer über HTTP als transport-Protokoll.
Bearbeiten : ich glaube, Sie machen ein wenig Verwirrung hier. Wenn das, was Sie versuchen zu erreichen ist ein binäre trasmitted Paket, dann ist die einzige Lösung bei der hand ist das net.tcp-Bindung, ist nicht kompatibel mit IIS.6. Wenn Sie nur wollen, zu können, wählen Sie den TCP-port der Verbindung, als jede HTTP-Bindung können dies tun, wie in meinem Beispiel oben, und kann verwendet werden, in IIS.6.
Ich denke, man kann als host mit TCP WURDE in IIS 7.
HTTP ist ein Anwendungsprotokoll, nicht transportieren.
InformationsquelleAutor AlexDrenea
Ich weiß, das ist ein bisschen spät.. Aber, ich vermute, Sie könnte verwenden Sie die "WCF Service Host" - app, die mit Visual Studio.
InformationsquelleAutor Prasanna K Rao