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
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.
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
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/
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.
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.
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).
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.
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>
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...)
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.
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.
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).
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.