De retour de mon week-end, je suis allé déboguer mon projet Web qui est une API Web ASP.NET Core. Il a commencé à me donner une erreur: URI non valide: le nom d'hôte n'a pas pu être analysé.
Je peux démarrer un nouveau projet d'api web core asp.net et il débogue bien, donc je suis sûr que c'est quelque chose avec ma configuration pour ce projet. Des idées?
James
J'ai eu le même problème. Fermez simplement VS, supprimez le dossier .vs, ouvrez à nouveau le projet. Reconstruire et exécuter. Ça devrait aider.
Je poste cette réponse car beaucoup de gens ont trouvé mon commentaire utile. Merci à @joshcomley de m'avoir piqué.
J'espère que cette réponse aidera quelqu'un:
.vs
(notez que ce dossier a un attribut caché, donc l'explorateur de fichiers ne l'affiche pas par défaut).vs/config/applicationhost.config
fichier<site name="<Your_Web_Site_Name>" ....
. Vous pouvez avoir plusieurs éléments comme celui-ci. Vous devez en choisir un où <Your_Web_Site_Name>
correspond au nom de votre site<site
élément rechercher un élément enfant comme:<binding protocol="http" bindingInformation=":8080:localhost" />
et remplacez-le par:
<binding protocol="http" bindingInformation=":8080:" />
Remarques:
Invalid URI: The hostname could not be parsed
.<binding protocol="http" bindingInformation="*:8080:*" />
. Et faites iisreset
après ce changement.La réponse de Jakub résout le problème car elle entraîne la régénération de applicationhost.config par Visual Studio. Dans mon cas, l'erreur disait que la valeur de la balise <binding>
Ne pouvait pas être analysée. J'avais ce qui suit: <binding protocol="http" bindingInformation="*:5000:*" />
Qui, une fois régénéré, ressemblait à ceci: <binding protocol="http" bindingInformation="*:5000:localhost" />
Le fichier se trouve dans le sous-dossier "config" du dossier ".vs", et au lieu de supprimer tout le répertoire, vous pouvez il suffit de corriger/restaurer votre balise <binding>
à une valeur qui peut être analysée.
Edit : per @ VeganHunter's comment , *
N'est pas valide hostname. Si vous voulez qu'il soit lié à tous les noms d'hôtes, laissez simplement l'hôte vide. Ex: *:80:
Au lieu de *:80:*
Signifie "Toutes les interfaces réseau/IP, sur le port 80, pour tous les noms d'hôtes".
Cette erreur indique que vos informations de liaison pour le site ne sont pas au format correct.
La valeur de bindingInformation se compose de trois parties.
ip:port:Host
Voici quelques formats de liaisons et leur résultat:
<!-- Configures the site with a hostname of "www.test.com" on port 80 for the IP address of 192.168.1.10. -->
<binding protocol="http" bindingInformation="192.168.1.10:80:www.test.com" />
<!-- Configures the site with a hostname of "localhost" on port 80 for the IP address of 192.168.1.10. -->
<binding protocol="http" bindingInformation="192.168.1.10:80:localhost" />
<!-- Configures the site without a hostname and IP address on port 80. You'd use this setting to make your site directly accessible via any address that the system has, including the localhost address at 127.0.0.1, as well as any and all configured IP addresses. -->
<binding protocol="http" bindingInformation=":80:" />
<binding protocol="https" bindingInformation="*:443:" />
<!-- Configures HTTPS bindings for all IP addresses over port 443. -->
Avec toutes les liaisons ci-dessus, vous pouvez définir le protocole sur https pour rendre votre site accessible uniquement via SSL.
J'obtenais un problème similaire et l'exécution de Visual Studio en mode Administrateur a résolu le problème pour moi.