Frage

Ich bin gerade erst in WCF-Programmierung. Ich habe auf einem selbst gehosteten Test Web-Service auf meinem Computer festgelegt, die sich hinter einer Firewall befindet; es ist bei http://localhost:8000/MyTestService. Ich kann die Service-Seite über den Browser zugreifen; alle arbeiten gut.

Jetzt will ich diesen Dienst zugreifen meinem Computer zu Hause, die in einem anderen Netzwerk ist. Ich habe eine dynamische dns (nennen wir es mydomain.dyndns.org) zu Punkt meiner Arbeit Router einrichten. Haben getestet, dyndns wird an der richtigen Adresse verweist.

Jetzt habe ich einen Test-App auf meinem Computer zu Hause installiert auf meinen Web-Service zu verbinden. So konfigurierte ich meine NAT für die Vorwärts Anfragen auf Port 8000 auf meinen Computer, auf der gleichen Port-Nummer.

Auf meinem Computer zu Hause öffne ich jetzt einen Browser und navigieren Sie zu http://mydomain.dyndns.org:8000/MyTestService. Nichts zu machen.

Natürlich bin ich etwas wirklich grundlegende über NATs und Port-Forwarding fehlt ... aber wie gesagt, ich bin in diesem Aspekt der Programmierung irgendwie neu, und ich würde wirklich einige Hinweise hier zu schätzen wissen!

War es hilfreich?

Lösung

Sehen Sie einen Fehler oder eine leere Seite? Können Sie canyouseeme.org vom Computer hinter der Firewall prüfen, ob der Port wirklich offen ist? Können Sie überprüfen, mit Werkzeugen wie Sysinternals TCPView, dass der Verbindungsversuch diesen Computer erreicht und nicht nur der Router?

Andere Tipps

Ich hatte das gleiche Problem.

nach einer guten Hilfe von diesem toppic. http://www.codeproject.com/Questions/140317/WCF -services-und Windows-Firewall . Mein WCF-Service hat gut funktioniert auf dem lokalen LAN auch mit der Firewall aktiv.

Aber es war das Internet nicht zugänglich über. Nach Portweiterleitung konnte ich die Servicebeschreibung sehen. aber ich konnte es nicht verwenden.

In diesem Artikel http: / /gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis/ Punkte mich in der richtigen Richtung. Der Service ist sichtbar, aber Verbindungen zu Ihrem Web-Server fehl, weil das WSDL auf die nicht veröffentlichten Servernamen zeigen und Ihr Kunde wird nicht dort sein kann.

In meinem Fall ein Ich brauche die Selbst wcf den lokalen Endpunkt für die Öffentlichkeit eine gehostete zu ändern.

        1 Create a URI to serve as the base address.
        Uri baseAddress = new Uri("http://publicdomain.com:8000/GettingStarted/");
        // Step 2 Create a ServiceHost instance
        ServiceHost selfHostRemote = new ServiceHost(typeof(MyService), baseAddress);

Viel Glück

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top