2010-09-15 19 views
7

Come reindirizzare una richiesta in entrata sulla porta xxx su localhost: yyy su windows 7?Port forwarding su Windows 7

Development Server (vs 2008) consente solo l'accesso da localhost che non è sufficiente. Devo testare la mia app da vari computer.

risposta

6

Grazie per i suggerimenti ragazzi, anche se ho trovato la risposta da solo.

Ho scaricato Microsoft SOAP Toolkit versione 3 e avviato MSSoapT, creato una traccia formattata in ascolto sulla porta 8080, inoltro per host: porta 127.0.0.1: 3804. Il mio problema era che ho usato "localhost" e non "127.0.0.1" .

Ora ogni richiesta inoltrata al computer di sviluppo da altri computer tramite la porta 8080 verrà reindirizzata alla porta 3804 in cui ASP.NET Development Server è impostato in modo statico per l'ascolto durante il debug delle applicazioni Web VS.NET.

+0

@: grazie mille. veramente buono, ha risolto anche il mio problema ... :) –

0

Non proprio quello che stai cercando. Tuttavia, il port forwarding sarà rilevante quando è installato un router ed è necessario inoltrare esplicitamente una richiesta su una porta del router specifica a uno specifico indirizzo IP e porta su un computer LAN. Se si desidera accedere al server Web da altri computer LAN sulla stessa rete, lo http://ip-address dovrebbe funzionare correttamente. Assicurati inoltre che il tuo server web sia in ascolto sull'IP LAN e non sia solo collegato a localhost.

+0

Dire Ho un'applicazione web sviluppata in VS.NET in esecuzione in modalità di debug. Ciò avvierà un'applicazione su Windows denominata ASP.NET Development Server e ascolterà, ad esempio, sulla porta 3804. Ora ho bisogno di uno strumento di inoltro proxy/port di qualche tipo per accettare richieste incomming su una porta diversa, ad esempio 8080 - e fire la richiesta contro "localhost: 3804". Ciò costringerà il server di sviluppo a "pensare" che la richiesta provenga da localhost e non da una macchina remota. Il problema è che ASP.NET Development Server consente solo le richieste originate dalla stessa macchina in cui è in esecuzione. – user448787

+1

Non puoi usare la tua app web su IIS? –

+0

Se non riesci a installare IIS su Windows 7, probabilmente sarebbe più semplice installare Apache ed eseguirlo in modalità proxy. Dove Apache servirebbe il contenuto da http: // localhost: 3804. Puoi facilmente configurare Apache sulla finestra e poi cercare nel modulo mod_proxy. –

1

Se questo è davvero per alcuni test, è possibile creare un server che ascolta su una porta, e quando riceve una connessione in ingresso genera un thread che apre una connessione al server locale effettivo e in seguito attende solo i dati vieni in entrambe le estremità e mischialo verso l'altra estremità. Se uno dei due socket si chiude, il thread di lavoro termina. Questa ovviamente non è una soluzione scalabile, ma per testarla dovrebbe facilmente fare il trucco.

+0

Sì, ma come sviluppatore sono pigro.Quindi mi chiedevo chi ha scritto quello strumento e dove posso trovarlo ;-) – user448787

0

Sto usando Windows 7 a 64 bit e non posso ottenere il Microsoft SOAP Toolkit per funzionare sulla mia macchina per il port forwarding e non mi è piaciuto il software di port forwarding gratuito che ho trovato lì, così ho appena cambiato il mio VS 2010 app web per usare iis locali, so che questo non aiuta le persone che corrono nel 2008 ma funziona se hai il 2010 ... Ecco una schermata del mio cambiamento: sto facendo questo per testare l'iPad ...

enter image description here

6

Al prompt dei comandi.

$> netsh 
$> interface portproxy 
$> add v4tov4 listenport=xxx connectaddress=127.0.0.1 connectport=yyy protocol=tcp 

See: http://technet.microsoft.com/en-us/library/cc776297%28WS.10%29.aspx#BKMK_1

+0

piccolo errore di ortografia. dovrebbe leggere 'interface portproxy' – nicholas

+0

Questo funziona perfettamente e non richiede l'installazione di alcun software aggiuntivo! Presumo, tuttavia, che venga ripristinato al riavvio del sistema. Puoi farlo in una riga (per uno script di accesso) come questo 'netsh interface portproxy add v4tov4 ...' ma non sto abbastanza bene con Windows per sapere come renderlo un sistema predefinito prima di accedere (ed eseguire StartUp script). –

+0

Questo non funziona sul mio sistema Win7 con localhost; funziona se non si specifica il connectaddress o si utilizza l'ip pubblico come connectaddress. Ma specificando 127.0.0.1 non si restituisce alcun errore, tuttavia il comp non sta ascoltando sulla porta specificata. –