Domanda

Sono solo entrare in programmazione WCF. Ho installato un servizio web test di self-hosted sul mio computer di lavoro, che si trova dietro un firewall; è al http://localhost:8000/MyTestService. Posso accedere alla pagina del servizio attraverso il browser; tutto benissimo.

Ora voglio accedere a tale servizio dal mio computer di casa, che si trova su una rete diversa. Ho un DNS dinamico (chiamarlo mydomain.dyndns.org) istituiti per punto al mio router lavoro. Hanno testato, dyndns punta verso l'indirizzo giusto.

Ora ho installato un applicazione di test sul mio computer di casa per la connessione al servizio web. Così ho configurato il mio NAT per trasmettere le richieste sulla porta 8000 al mio computer di lavoro, sulla stesso numero di porta.

Sul mio computer di casa ora aprire un browser e passare a http://mydomain.dyndns.org:8000/MyTestService. Niente da fare.

Ovviamente mi manca qualcosa di veramente fondamentale su NAT e port forwarding ... ma come ho detto, io sono un po nuovo a questo aspetto della programmazione, e mi piacerebbe davvero apprezzare alcune indicazioni qui!

È stato utile?

Soluzione

Non si vede un errore o di una pagina vuota? Potete controllare canyouseeme.org dal computer dietro il firewall che la porta è davvero aperta? Si può verificare con strumenti come Sysinternals TCPView che il tentativo di connessione raggiunge questo computer e non solo il router?

Altri suggerimenti

Ho avuto lo stesso problema.

dopo un buon aiuto da questo toppic. http://www.codeproject.com/Questions/140317/WCF -Servizi-e-Windows-Firewall . Il mio servizio WCF ha funzionato bene sulla LAN locale anche con il firewall attivo.

Ma non era accessibile su Internet. Dopo il port forwarding ho potuto vedere la descrizione del servizio. ma non ho potuto usarlo.

In questo articolo http: / /gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis/ mi punti nella giusta direzione. Il servizio è visibile, ma le connessioni al server Web avrà esito negativo perché il WSDL punta al nome non pubblicato server e il client non sarà in grado di arrivare.

Nel mio caso ho un bisogno di cambiare il self hosted WCF l'endpoint locale a quello pubblico.

        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);

In bocca al lupo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top