2013-10-24 8 views
25

Sto provando a scrivere un'API WEB da .net e sto cercando la mia applicazione Android per interrogare alcuni dati dal database del server sql.Impossibile accedere all'API WEB con ip: port ma può con localhost: port durante la modalità debug VS

Ho la web API scritta e funziona bene in modalità di debug.

La mia domanda è che l'url dell'applicazione è localhost:port e funziona correttamente. Tuttavia, quando provo a cambiarlo in MYIP:port (eg. http:192.168.X.1234) o MYHOSTNAME:port (eg win7home:1234) questo mi dà Bad Request - Invalid Hostname.

So che posso distribuire questo a IIS e il mio IIS è l'installazione, ma mi stavo chiedendo come mai non funziona in modalità di debug ???

C'è un modo per me di eseguirlo in modalità di debug e testare sul mio Android allo stesso tempo invece di doverlo distribuire ogni volta che voglio fare un cambiamento?

risposta

14

Sia Anton e risposte di Matteo mi ha segnalato la giusta direzione

Quindi questo quello che ho fatto

  1. Run Studios visivi in ​​modalità amministratore

  2. Cambiato i protocolli vincolanti e consentono in arrivo indicazioni come suggerite http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer

    Ma dopo, io avere un servizio non disponibile (503) Errore

  3. così ho seguito questo: IIS Express Enable External Request - 503 Aggiunto solo il protocollo della porta e la porta: protocollo IP,

Than funziona sia sul browser della mia macchina e sul mio telefono.

Non troppo troppo sicuro perché è necessario il 3 ° gradino -my ipotesi è (l'url localhost è necessario per VS per puntare e l'url IP viene utilizzato per l'accesso da un'altra macchina)

+0

Grazie! Voglio solo aggiungere che è necessario riavviare IIS Express per le modifiche da prendere. Il modo più semplice per farlo era fare clic con il pulsante destro del mouse sull'icona di IIS Express e fare clic su exit. L'icona andrà via, quindi non è possibile riavviarla in questo modo. Invece, avvia semplicemente una sessione di debug della tua app Web da Visual Studio. Riavvierà IIS. Come bonus, puoi confermare le modifiche apportate facendo clic con il pulsante destro del mouse sull'icona di IIS, trovando la tua app Web in "Visualizza siti" e quindi gli indirizzi IP da cui l'app è ora raggiungibile. Dovrebbe mostrare le modifiche vincolanti proprio lì. – strangeluck

+0

Mi sono imbattuto in questa domanda utilizzando l'API Web self-hosted. Vi sono altre informazioni rilevanti su http://stackoverflow.com/questions/16642651/self-hosted-owin-and-urlacl – Jedidja

+2

E iis (non iis express)? – Kira

30

Se lo si esegue in modalità di debug presumo che si stia utilizzando IIS-Express.

Per impostazione predefinita, IIS-Express si collega solo a localhost.

Per aggirare questo problema, è possibile aprire il file di configurazione dell'applicazione IIS-Express situato a: C:\Users\<username>\My Documents\IISExpress\config\applicationhost.config e modificare le informazioni di binding del sito.

cambiamento

<binding protocol="http" bindingInformation="*:55284:localhost" /> 

a

<binding protocol="http" bindingInformation="*:55284:*" /> 

Dovrete anche riavviare IIS Express dopo la modifica.

6

Ho avuto gli stessi problemi quando volevo condividere il mio IIS localhost in modo che alcuni ragazzi potessero semplicemente digitare il mio nome macchina o IP e collegarsi all'istanza della mia web app. Quindi, se questo è quello che ti serve quando http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer. Funziona per me sia per le app Silverlight e MVC. Ho persino impostato i breakpoint e sono stati colpiti da una macchina remota.

+0

ed è stata anche utilizzare IIS Esprimi – Anton

+0

e PLEASE non dimenticare la sicurezza sul tuo computer. L'articolo sopra mi ha risparmiato un sacco di tempo, perché non ho prestato attenzione alla politica di sicurezza – Anton