Wie ping oder überprüfen Sie den Status des WCF-Dienstes mit dem net.tcp-Endpunkt vom Remote-Server?
Ich wirklich kommen aus der Welt der Http
und habe nie viel mit dem alten .NET-Remoting, die verwendet TCP, aber ich verstehe die TCP-Konzepte und jetzt umgesetzt haben, die mehrere WCF-Dienste mit dem Netz.tcp-Bindung in den letzten Jahren. Die meisten der Zeit, es ist, ausgeführt wird, ich konsumiere es, Ende der Geschichte. Aber manchmal sind die server-Konfiguration ist weiter Fortgeschritten und ich bekomme Fehler in der Kommunikation, die nur auf 1 server und vielleicht auch nicht von anderen. Um zu beweisen, ob es sich um eine firewall - /server - /etc. Problem ich brauche, um zu sehen, wenn der WCF-Dienst kann auch gesehen werden oder erreicht, ohne Frage. Dies ist für einen Windows-Dienst gehosteten WCF-Dienst mit net.tcp, dass ich versuche aus dieser situation.
Die Sache ist mit einem WCF-Dienst ausgesetzt, die über eine HTTP-Bindung, ich kann nur plop die URI in den browser zum anzeigen der service-Seite, lassen Sie mich wissen den service ordnungsgemäß ausgeführt wird. Einfach testen.
Wie mache ich das äquivalent für einen WCF-Dienst ausgesetzt, die über ein Netz.tcp-Bindung? Gibt es irgendein tool oder Befehl, den ich verwenden können, um zu testen, zum Beispiel net.tcp//mycustomWCFService:8123/MyService
? Ich habe gesehen, ein paar Beiträge über das schreiben von code, um programmgesteuert ermitteln, wenn der WCF-Dienst verfügbar ist, aber ich will nicht zu tun es auf diese Weise. Ich will diese Kontrolle wird-wenn überhaupt-möglich ohne code, Analog zu mir ziehen, bis die http-Endpunkt in einem browser.
Jede Hilfe ist willkommen, danke!
InformationsquelleAutor der Frage atconway | 2011-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr service implementiert einen Metadaten-Endpunkt (in der Regel namens
mex
und geschachtelte unter den wichtigsten Endpunkt, umgesetzt mit dermexTcpBinding
in diesem Fall), können Sie den "ping" mit dem svcutil-Befehlszeile-Dienstprogramm, das ist mit Visual Studio. E. g.,Wenn es wirft einen Fehler, Ihr service ist (potenziell) nach unten. Wenn es gelingt, bist du (wahrscheinlich) in der Wirtschaft. Wie die vorhergehenden parentheticals empfehlen, es ist eine Annäherung. Es bedeutet, dass ein Zuhörer an der Adresse, und dass es in der Lage, eine Metadaten-Anfrage.
InformationsquelleAutor der Antwort Jason Shantz
Einen anderen Weg fand ich zu mindestens sehen, ob es empfangsbereit ist, geben Sie den folgenden 'netstat" - Befehl (aus einer Eingabeaufforderung) auf dem server installiert:
netstat -ona | find "8123"
(Ja, dass ist eine pipe-Trennzeichen im Befehl oben). Wenn nichts zurückgegeben wird, ist es aktiv Zuhören und gehostet auf den gesuchten Hafen.
InformationsquelleAutor der Antwort atconway
Einen einfachen Weg, das zu tun wäre (vorausgesetzt, der Dienst in IIS gehostet) zum hinzufügen einer HTTP-Bindung (mit einem anderen port!!) auf die gleiche IIS-Website und hinzufügen
<serviceDebug httpHelpPageEnabled="true" />
zu dem service-Verhalten. Auf diese Weise können Sie leicht überprüfen, ob der Dienst verfügbar ist, indem Sie Ihre HTTP-URL in einem browser. Zugegeben, auf diese Weise können Sie nur erfahren, ob der Dienst verfügbar ist oder nicht, Sie wäre nicht in der Lage zu erkennen und die Probleme der Vernetzung auf der bestimmten TCP-port, zum Beispiel.Wenn Sie brauchen, um mit der letzteren Frage, wie gut, oder wenn durch das hinzufügen eines HTTP-Bindung nicht möglich ist, könnte man nur einen einfachen "PING" - Betrieb zum service-Vertrag und verwenden Sie ein Netz.tcp-client aufrufen.
InformationsquelleAutor der Antwort mthierba
Können Sie auch mit dem telnet-client-Programm zu entdecken-listening-ports, d.h., telnet {url oder IP} {port}. Um zu überprüfen, ob eine web-Seite ist up.. 'telnet http://www.godaddy.com 80' sollte zunächst erzeugen Sie ein leeres Fenster, gefolgt von einem Request Time-out Reaktion (400), wenn keine Befehle befolgen.
InformationsquelleAutor der Antwort Marty Grogan