web-dev-qa-db-fra.com

Impossible d'accéder à l'API WEB avec ip: port mais avec localhost: port en mode débogage VS

J'essaie d'écrire une API Web à partir de .net et j'essaie que mon application Android interroge certaines données de la base de données du serveur SQL.

J'ai l'API Web écrit et cela fonctionne bien en mode débogage.

Ma question est que je remarque que l'URL de cette application est localhost:port et qu'il fonctionne bien . Cependant, lorsque j'essaie de le changer en MYIP:port (eg. http:192.168.X.1234) ou MYHOSTNAME:port (eg win7home:1234), ceci me donne Bad Request - Invalid Hostname.

Je sais que je peux le déployer sur IIS et que mon IIS est installé, mais je me demandais simplement pourquoi il ne fonctionne pas en mode débogage ??? 

Existe-t-il un moyen de l'exécuter en mode débogage et de tester simultanément mon Android, au lieu de le déployer à chaque fois que je souhaite apporter une modification?

32
noobiehacker

Si vous l'exécutez en mode débogage, je suppose que vous utilisez IIS-Express.

Par défaut, IIS-Express ne lie qu'à localhost.

Pour éviter cela, vous pouvez ouvrir le fichier de configuration de l'application IIS-Express situé à l'adresse: C:\Users\<username>\My Documents\IISExpress\config\applicationhost.config et modifier les informations de liaison du site.

changement

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

à

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

Vous devrez également redémarrer IIS-Express après le changement.

37
Matthew

Je rencontrais les mêmes problèmes lorsque je souhaitais partager mon hôte local IIS afin que certains utilisateurs puissent simplement taper le nom de mon ordinateur ou mon IP et se connecter à mon instance d'application Web. Donc, si c'est ce dont vous avez besoin quand http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer . Cela fonctionne pour moi pour les applications Silverlight et MVC. J'ai même établi des points d'arrêt et ils sont frappés à partir d'une machine distante.

6
Anton

Dans le répertoire de votre solution, dans le fichier .vs\config\applicationHost.config, changez la ligne

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

à

<binding protocol="http" bindingInformation=":1234:192.168.1.35" />

et exécutez Visual Studio en tant qu'administrateur. Redémarrez IIS Express. cette solution fonctionne pour moi.

1
Ahmad Aghazadeh

Avait le même problème de débogage dans Code Visual Studio , je l'ai résolu en ajoutant:

"env": {
      // ...
      "ASPNETCORE_URLS": "http://*:5000" // change to the port you are using
      // ...
},

.. à launch.json

Apparemment, par défaut, il lie le protocole http à 'localhost: 5000', donc cela fonctionne avec localhost mais pas avec ip address.

Si vous essayez d'atteindre un point d'arrêt à la suite d'une demande provenant d'un autre ordinateur, n'oubliez pas de vérifier les paramètres de votre pare-feu (et/ou de votre antivirus).

j'espère que cela t'aides

0
Carlos R Balebona