Demande incorrecte-nom D'hôte invalide IIS7

Quand j'ai essayer de frapper mon application web sur le port 8080 j'obtiens l'erreur suivante

Mauvaise Requête-Nom D'Hôte Invalide
Erreur HTTP 400. La demande de nom de domaine est invalide.

Je ne sais même pas par où commencer à diagnostiquer ce problème

58
demandé sur MrWhite 2011-01-28 20:17:13

13 réponses

Avez-vous vérifié la liaison est IIS? (inetmgr.exe) il peut ne pas être enregistré pour accepter tous les noms d'hôtes sur 8080.

Par exemple, si vous le configurez pour mysite. com: 8080 et que vous le frappez à localhost: 8080, IIS obtiendra la requête mais n'aura pas de liaison de nom d'hôte pour correspondre donc il rejette.

En dehors de cela, vous devriez vérifier les journaux IIS (C:\inetpub\logs\wmsvc#) sur le serveur et voir si vous voyez votre demande. Ensuite, vous saurez si c'est un problème sur votre client ou sur le serveur lui-même.

57
répondu Taylor Bird 2011-01-28 17:59:34

FWIW, si vous souhaitez simplement autoriser les requêtes dirigées vers n'importe quel nom d'hôte / ip, vous pouvez définir votre liaison comme suit:

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

J'utilise cette liaison pour pouvoir charger une machine virtuelle avec IE6, puis déboguer mon application.


EDIT: lorsque vous utilisez IIS Express pour déboguer, l'emplacement par défaut du fichier de configuration de cette option est

C:\Users\{User}\Documents\IISExpress\config\applicationhost.config
28
répondu jlafay 2014-02-19 15:35:27

Cette page de Microsoft décrit comment configurer L'accès à IIS Server Express À partir d'autres ordinateurs du réseau local.

En un mot:

1) à partir d'une invite de commandes avec des privilèges d'administrateur:

netsh http add urlacl url=http://[your ip address]:8181/ user=everyone

2) dans le pare-feu Windows avec sécurité avancée, créez une nouvelle règle d'entrée pour le port 8181 pour autoriser les connexions externes

3) dans applicationhost.config, dans le nœud de votre projet, ajoutez:

<binding protocol="http" bindingInformation="*:8181:[your ip address]" />

Ne pas ajouter (comme cela a été suggéré dans une autre réponse):

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

La liaison Générique ci-dessus a brisé mon accès à partir de http://192.168.1.6:8181/

20
répondu Erwin 2015-04-24 09:41:46

Donc, j'ai résolu cela en allant sur mon site Web dans IIS Manager et en changeant le nom d'hôte dans les liaisons de site de localhost à *. A commencé à travailler immédiatement.

Liaisons de Site dans IIS

12
répondu SINGULARITY 2015-08-10 17:00:33

N'oubliez pas de lier à L'adresse IPv6 aussi! J'essayais d'ajouter un site sur 127.0.0.1 en utilisant localhost et j'ai eu la mauvaise erreur request / invalid hostname. Quand j'ai pingé localhost, il a été résolu à:: 1 Puisque IPv6 était activé, donc j'ai juste dû ajouter la liaison supplémentaire pour résoudre le problème.

Liaisons du Site IIS

3
répondu Lucifer Sam 2015-10-30 21:45:28

Je ne suis pas sûr si c'était votre problème mais pour quiconque essaie d'accéder à son application web depuis sa machine et ayant ce problème:

Assurez-vous que vous vous connectez à 127.0.0.1 (alias localhost) et non à votre adresse IP externe.

Votre URL doit être quelque chose comme http://localhost:8181/ ou http://127.0.0.1:8181 et pas http://YourExternalIPaddress:8181/.


informations Supplémentaires:
La raison pour laquelle cela fonctionne est que votre pare-feu peut bloquer votre propre demande. Il peut être un pare-feu sur votre système d'exploitation et il peut être (l'habituel) votre routeur.

Lorsque vous vous connectez à votre adresse IP externe, vous vous connectez à internet, comme si vous étiez un étranger (ou un pirate informatique).
Cependant, lorsque vous vous connectez à votre localhost, vous vous connectez localement comme vous-même et le bloc n'est évidemment pas nécessaire( et évité complètement).

3
répondu MasterMastic 2016-02-15 04:52:10

Vous pouvez utiliser Visual Studio 2005/2008/2010 CMD tool. Exécutez-le en tant qu'administrateur, et écrivez

aspnet_regiis -i

Enfin, je peux exécuter mon application avec succès.

2
répondu FrankFan 2013-01-26 09:34:01

Pour Visual Studio 2017 et Visual Studio 2015, IIS Express paramètres est stocké dans le secret .vs répertoire et le chemin est quelque chose comme ceci .vs\config\applicationhost.config, ajouter une liaison comme ci-dessous

<bindings>
    <binding protocol="http" bindingInformation="*:8802:localhost" />
    <binding protocol="http" bindingInformation="*:8802:127.0.0.1" />
</bindings>
2
répondu imgen 2017-10-23 09:50:04

J'ai eu cette erreur quand j'ai essayé d'appeler un webservice en utilisant "localhost". Je l'ai corrigé en utilisant L'adresse IP réelle à la place (192.168...)

1
répondu Cosmin 2014-06-25 14:42:28

Ce slove mon problème :
(désolé pour mon mauvais anglais)
1.) ouvrez cmd un adminstor et exécutez la commande (sans les crochets): netsh http add urlacl url=http://[ip adresse]: [port] / user = everyone

2.) documents / iisexpress / config / applicationhost.config et dans votre dossier de projet racine dans le dossier (dossier caché).vs / config / applicationhost.config vous devez ajouter une ligne à la balise" site":

3.) ouvrez" Internet information services (IIS) manager", (si ce n'est pas le cas trouver: dans serch dans la barre des tâches écrire "activer ou désactiver les fonctionnalités de la fenêtre" et ouvrir resulet, puis cochez la case "service d'information internet" et son installation que) dans l'écran de gauche, cliquez sur nom de l'ordinateur- > Sites- > Site Web par défaut, puis cliquez sur l'écran de droite" liaison " cliquez sur le bouton Ajouter wirte

4.) ouvrez "pare-feu Windows avec sécurité Avancée", dans l'écran de gauche, appuyez sur "règles entrantes", puis appuyez sur l'écran de droite " nouvelle règle..."vérifiez le port et appuyez sur Suivant, vérifiez TCP et votre port et appuyez sur Suivant, cochez "autoriser la connaction" et appuyez sur Suivant, cochez toutes les cases et appuyez sur Suivant, wirte nom et appuyez sur Terminer.

Fait.

1
répondu izik f 2017-07-12 22:05:26

Vérifiez votre fichier hosts local (C:\Windows\System32\drivers\etc\hosts par exemple). Dans mon cas, je l'avais déjà utilisé pour pointer une URL vers une boîte de développement, puis oublié à ce sujet. Quand j'ai ensuite réutilisé la même URL, j'ai continué à recevoir une mauvaise requête (nom D'hôte invalide) parce que le trafic allait au mauvais serveur.

0
répondu robaker 2013-07-25 13:31:33

J'ai vu la même erreur après avoir utilisé msdeploy pour copier l'application sur un nouveau serveur. Il s'est avéré que les liaisons utilisaient toujours l'adresse IP du serveur précédent. Donc, vérifiez l'adresse IP dans les liaisons IIS. (Semble évident après le fait, mais ne m'est pas immédiatement venu à l'esprit pour le vérifier).

0
répondu dan9298 2015-06-03 20:49:10

Vérifiez l'URL exacte que vous fournissez. J'ai vu cette erreur quand j'ai manqué le préfixe de route défini dans ASP.NET donc, il ne savait pas où acheminer la demande.

0
répondu Taran 2018-09-14 14:29:18