web-dev-qa-db-fra.com

ASP.NET 5 MVC: impossible de se connecter au serveur Web 'IIS Express'

Qu'est-ce que je fais:

La suppression de applicationhost.config, situé dans Documents\IISExpress\config, ne modifie pas le message d'erreur. (Il existe également un dossier IISExpress dans program files et program files (x86).)

Quelque chose que j'ai remarqué, et je ne sais pas si c'est un problème: 

Le fichier référencé 'lib/jquery-validation/jquery.validate.js' est introuvable.

J'ai eu une décharge avec rawcap mais je n'y remarque pas grand chose. Une partie de ce qui était là:

"Framework": {"FrameworkName": "DNXCore, version = v5.0", "FriendlyName": "DNX Core 5.0", "Nom abrégé": "dnxcore50", "RedistListPath": null}

Je ne remarque pas de problème, mais j'ai les données du réseau si cela peut aider à comprendre pourquoi je ne peux pas me connecter au serveur Web. J'ai immédiatement un RST,ACK alors je suppose que le port est fermé et quel que soit le serveur Web utilisé, il n'est pas configuré.

Plus sur ce problème: Erreur 800700c1 de/trace: error

J'ai essayé:

  • suppression de applicationhost.config (et modification du numéro de port)
  • exécuter visual studio en tant qu'administrateur
  • suppression du dossier IISExpress dans Documents (message d'erreur de modifications jusqu'à la réinstallation du dossier)
  • activer/désactiver ssl, en copiant l’URL dans la boîte de lancement. (note: je n'utilise pas le ssl)
  • effacer toutes les erreurs sfc/scannow
  • démarrer iisexpress avec les versions x86 et 64 bits
84
Sarek

Après avoir installé Update 2 pour Visual Studio 2015, j'ai commencé à avoir la même erreur. J'ai tout essayé ci-dessus sans succès. Cependant, j'ai trouvé une solution qui fonctionne pour moi:

  1. Supprimez votre fichier\.vs\config\applicationhost.config (remarque: .vs est un dossier caché)
  2. Ouvrez Visual Studio, cliquez avec le bouton droit sur le site Web> Propriétés> onglet Débogage> Paramètres du serveur Web> URL de l'application - modifiez le numéro de port.
140
Victor Stagurov

Quittez VS et supprimez le fichier (projet) .vs\applicationhost.config. Redémarrez VS. Il devrait commencer à fonctionner.

101
dwoodard

Essayez d'utiliser un autre port. Je viens de mettre en place un nouveau projet Core 1.0 RC1 et j'ai la même erreur.

  • Projet web clic droit
  • Onglet Débogage
  • Activez/désactivez Activer SSL, il devrait générer un nouveau port aléatoire
  • Copiez l'URL SSL et collez-le dans la zone URL de lancement.
  • Lancer le projet

Travaillé pour moi (TM).

Réponse de: https://stackoverflow.com/a/28650554/134761

 enter image description here

14
angularsen

J'ai rencontré ce problème dans .net core 2.0 lorsque j'ai mis à jour le numéro de port de mon projet.

J'ai pu résoudre le problème en deux étapes: 

  • ÉTAPE 1: SUPPRIMER le dossier .vs qui est caché dans le dossier principal de la solution. (fermez Visual Studio avant cela) puis lorsque vous redémarrez Visual Studio, ce dossier et ce fichier (applicationhost.config) qu’il contient seront automatiquement créés par Visual Studio.
  • ÉTAPE 2: Pour plusieurs projets de démarrage, si le problème persiste, exécutez le projet un par un au démarrage, puis exécutez-le en tant que projet de démarrage multiple.
11
Saurin Vala

La solution qui a fonctionné pour moi était la suivante: Fermer le projet VS Dans l'Explorateur de fichiers, accédez au projet et supprimez l'intégralité du dossier ".vs" Redémarrez le projetLancez en tant que "Debug" Fonctionne Apparemment, cela a quelque chose à voir avec le fichier "applicationhost.config".

Prendre plaisir!

9
Amit Kumar Verma

J'ai eu ce même problème, mais la façon dont j'ai résolu le problème était d'aller dans le fichier applicationhost.config et de supprimer un port qui n'avait pas été ajouté par moi (IIS Express, je suppose), ce qui a placé mon site de port spécifique sur un autre port. 

Voici ce que le fichier de configuration avait pour mes liaisons:

<bindings>
      <binding protocol="http" bindingInformation="*:54764:localhost" />
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

J'ai supprimé le premier élément de liaison car le seul port que je voulais était 44360. Mon fichier de configuration ressemble maintenant à ceci:

<bindings>
      <binding protocol="https" bindingInformation="*:44360:localhost" />
</bindings>

Maintenant, je ne vois pas l'erreur quand je débogue.

J'ai également remarqué que le port 80 de ma deuxième API de mon projet était également affecté, que j'ai également supprimé.

5
Jeff

Exécutez VisualStudio avec les privilèges d’administrateur et exécutez le projet. Fermez ensuite VisualStudio et toutes les erreurs et réexécutez VisualStudio avec l'utilisateur normal.

Cela l'a fait pour moi.

Il semble que IIS doive écrire quelque chose dans une configuration avec des privilèges d'administrateur (le port 80 ne fonctionnait pas avec un utilisateur normal mais le port 6767 fonctionnait correctement).

4
Tadej

supprimez les dossiers bin et obj du dossier du projet et reconstruisez-les.

4
Muhannad

Fermez juste le studio visuel et rouvrez-vous et exécutez… .. Cela a fonctionné pour moi.

4
T-Jayanth Dore

Le mien se produit dès que j'ajoute une nouvelle liaison dans le fichier applicationhost.config, exécuté en tant qu'administrateur, corrigeant le problème.

3
goamn

J'ai été capable de changer cette erreur en changeant une seule chose. Dans le fichier launchSettings.json de mon projet d'application Web ASP.Net Core 1.0 RC2:

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:18177/",
      "sslPort": 0
    }
  },

à 

  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:18177/",
      "sslPort": 0
    }
  },

J'avais changé pour https dans une tentative d'exécuter le projet en utilisant ce protocole. Apparemment, ce n’est pas le lieu de faire ce changement. Je soupçonne qu'il crée plusieurs liaisons sur le même port, et IIS Express n'aime pas cela. 

3
redwards510

J'ai eu le même problème, j'ai pu le résoudre en changeant le numéro de port.

  1. Faites un clic droit sur le projet et sélectionnez les propriétés

  2. Aller à la section de débogage

  3. Sous Paramètres du serveur Web, modifiez le port de l'URL de l'application [augmentez simplement d'un :)].

 enter image description here

3
Akbar Badhusha

Dans mon cas, il s’agissait d’une autre application qui écoutait sur le même port que IIS Express tentait d’attacher. Je dois exécuter netstat -ao pour voir le PID du processus qui utilise le même port et la même application d'arrêt. Dans mon cas, l'application était Viber.

3
codevision

J'ai ajouté .UseUrls("https://localhost:<some port>/") à Program.cs. Cela semblait faire l'affaire pour moi!

3
Helzgate

Je viens de rencontrer le même problème et j'ai tué tous les processus "iisexpress.exe" en cours d'exécution. Cela a fonctionné pour moi!

2
SynD

Je ne ferai pas semblant de bien comprendre quel bogue MS crée ce problème, mais voici une autre solution potentielle:

Dans le fichier .vs/config/applicationHost.config, recherchez la section relative à <system.applicationHost><applicationPools>. Sous les pools, assurez-vous que la valeur de l'attribut managedRuntimeVersion correspond à la valeur qui se trouve dans la configuration IIS du système (et/ou la version du framework .NET installé).

Par exemple, vous pouvez trouver (comme je l'ai fait) que le fichier généré a:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

Dans mon cas, vous remplaceriez ceci par:

    <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0.30319" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />

Notez le remplacement de "v4.0" à "v4.0.30319". Cela a résolu le problème.


Ce qui semble se passer:

Je crois que VS génère un fichier applicationHost.config avec des versions "par défaut" pour le framework .NET, qui peut ne pas correspondre à la version spécifique installée/configurée sur le système. Vous pouvez résoudre ce problème en observant son exécution dans Process Monitor et en recherchant la ligne de commande pour iisexpress.exe. L'exécution de cette commande avec l'ajout de /trace:error génère un message plus informatif sur l'échec du préchargement du CLR avec la version v4.0. En être témoin:

Démarrage de IIS Express ...
Échec lors de la tentative de préchargement de la version 4.0 du CLR. h = 80131700
Échec de l'initialisation du W3WP_Host hr = 80131700
Process Model Shutdown appelé
Impossible de démarrer iisexpress.


Quoi qu'il en soit, j'ai pensé que cela pourrait être utile à quelqu'un d'autre, car il est assez courant d'avoir plusieurs références en ligne avec de mauvaises informations, et je l'ai personnellement touché à quelques reprises maintenant.

2
Nick

Pour moi, le problème était qu'un autre processus utilisait le même port. (Dans mon cas, Outlook utilisait le même port que mon site et mon site ne pouvait donc pas démarrer) 

Oui, vous pouvez modifier le port local, mais si vous exécutez une API ou une application dont d'autres applications ont besoin, vous ne souhaitez pas toujours le faire. 

Pour obtenir une liste des applications utilisant quel port, ouvrez CMD et tapez "netstat -aon" Vous obtiendrez une liste des ports. Recherchez le port que votre site doit utiliser ou que vous souhaitez utiliser et notez/mémorisez le PID.

Maintenant, ouvrez le gestionnaire de tâches et cliquez sur l'onglet 'détails'. Trouvez le processus avec votre PID et terminez-le. Vous devriez maintenant pouvoir démarrer IIS Express avec ce port. 

2
Enrico

Essayez ceci d’abord si cela fonctionnait et s’arrêtait brusquement:

  • Fermer Visual Studio
  • Tuer les processus iisexpress.exe
  • Rouvrir Visual Studio
2
Simon_Weaver

Ma solution (pour .net core 2.0) était que j'avais oublié d'ajouter le numéro de port dans applicationUrl, sous iisExpress dans launchSettings.json.

"iisExpress": {
  "applicationUrl": "https://localhost:50770",
  "sslPort": 50770
}
2
Numm3n

Essayez en cmd

taskkill /im iisexpress.exe /f
taskkill /im dotnet.exe /f

et appuyez sur f5 . Je ne change pas de port, ne supprime pas de fichier et ne redémarre pas VS.

1
D. Nikitin

J'ai simplement basculé sur "Activer SSL". Cela a résolu mon problème.

  1. Projet web clic droit
  2. Onglet Débogage
  3. Basculer Activer SSL "sur" (s'il est désactivé, ce qui était mon cas)
1
Harun Altay
  1. Connectez-vous en tant qu'administrateur sur la machine locale
  2. Open Visual Studio en tant qu'administrateur
  3. Supprimer les dossiers bin et .vs du dossier de projet
  4. Supprimer tous les fichiers dans {utilisateurs}\Documents\IISExpress

Je pense que le problème sous-jacent est la permission pour moi

1
Francois Taljaard

Je n'ai pas compris ce qui causait le problème . Mais un réparer installer l'a corrigé.

1
Sarek

Il suffit de lancer Visual Studio en tant qu'administrateur et c'est tout.

1
Abdul Rauf

Pour moi, c'était un mélange de suivre ces instructions :

Supprimez le fichier .vs\applicationhost.config de votre application Web et essayez encore.

Et puis, peut-être le plus important, exécuter Visual Studio avec des privilèges d’administrateur.

1
contactmatt

J'ai pu résoudre ce problème en redémarrant mon ordinateur. J'ai essayé plusieurs choses sans succès, puis j'ai abandonné et redémarré mon ordinateur. Cela fonctionne bien maintenant depuis quelques jours après mon redémarrage. Probablement le résultat d'un processus qui a été bloqué.

0
Keenan Stewart

Assurez-vous que la clé de registre suivante \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList ne contient pas d'adresses IP qui ne sont pas liées à une carte réseau activée sur votre ordinateur. 

C’est la cause de mon problème après avoir essayé les différentes solutions énumérées dans cette question SO et parmi d’autres, telles que:

  1. Suppression de applicationhost.config
  2. Activer et désactiver SSL.
  3. Changer le numéro de port.
  4. Tuer manuellement le processus IIS Express.
  5. Réinstallation de IIS Express.
  6. Réparation de Visual Studio.
  7. Installation d'une nouvelle version de Visual Studio
  8. Création d'une nouvelle application Web .Net Framework.
  9. Création d'une nouvelle application Web .Net Core.
  10. Exécuter des commandes netsh urlacl
  11. En cours d'exécution netsh http add iplisten ipaddress = ::
  12. Exécution de Visual Studio en tant qu'administrateur.
  13. Assurer les droits de traversée du contournement, le cas échéant.

Apparemment, lorsque IIS express tentait de démarrer, il tentait de se lier à cette adresse IP invalide. Le correctif consistait à supprimer l'adresse IP non valide. Cette invalide supplémentaire est peut-être venue de mon réseau sans fil domestique alors que j'étais au travail, une adresse IP différente est attribuée via l'adaptateur câblé.

Une solution miracle peut être de supprimer toutes les adresses IP de la clé de registre et d'exécuter netsh http add iplisten ipaddress=:: pour permettre l'écoute de toutes les adresses.

J'ai pu suivre ce problème après avoir constaté les entrées suivantes du journal des événements:

  • IIS Express: Le processus de travail du pool d'applications 'WebApplicationNetCore AppPool', PID = '23260', n'a pas pu initialiser la communication http.sys lorsque A été invité à démarrer le traitement des demandes http et sera donc considéré comme malade par W3SVC et résilié. Le champ de données contient le numéro d'erreur
  • IIS Express: Le processus de travail n'a pas pu s'initialiser correctement et N'a donc pas pu être démarré. La donnée est l'erreur.
  • Événement HTTP: Impossible d'établir une liaison avec le transport sous-jacent pour 192.168.1.42:52999. La liste IP en écoute seule peut contenir une référence à une interface Qui n'existe peut-être pas sur cette machine. Le champ de données contient le numéro d'erreur
0
Alexander Higgins

Le problème peut être dû au fait que [√] Enabled SSL a été sélectionné pour votre projet (voir l’onglet Debug dans la fenêtre des paramètres du projet), mais Visual Studio décide d’être muet et d’installer quelque chose comme http://localhost:32396. La raison de son échec est parce que 1. ce n'est pas HTTPS et 2. le certificat n'est pas valide. Pour le forcer, vous devez utiliser un port dans la plage 44300-44398.

Voir https://stackoverflow.com/a/24957146/1236397

0
James Wilkins

Je viens de changer mon profil de "IIS Express" à "MyProjectName" (qui, je pense, utilise Kestrel en tant que serveur http au lieu d'IIS) et maintenant tout fonctionne correctement:

 enter image description here

0
JedatKinports

Pour moi, IIS Express n’était pas accessible lorsque j’ai ajouté iplisten à l’invite DOS comme suit: netsh http add iplisten MyIPAddress. Je l'ai corrigé en supprimant la iplisten comme ceci: netsh http delete iplisten MyIPAddress.

0
Jason J. Lee

Et encore une autre façon d’obtenir la même erreur:

Utiliser 0.0.0.0 comme adresse IP. Cela fonctionne bien en production, mais l'échec de IIS Express pour nous a commencé. Changer cela en localhost dans dev a résolu notre problème.

0
Johny Skovdal

CLARIFIER

Vraiment beaucoup de réponses ici sont les mêmes et disent quelque chose comme "Redémarrez et ça fonctionne à nouveau comme par magie".

Eh bien, 9 personnes sur 10 ont ce problème comme le PO, c’est parce que THE IP-ADDRESS IS DÉJÀ UTILISÉ.

RÉPONSE

Il pourrait y avoir 2 adresses IP utilisées. Vous pouvez trouver les deux par:

1) Clic droit sur le projet de démarrage

2) Cliquez sur "Propriétés"

3) Cliquez sur l'onglet "Débogage"

Vous voyez ici votre "URL de l'application" et votre "URL SSL".

  • Si votre "URL de l'application" est en cours d'utilisation, changez-la ici et sauvegardez-la. Elle devrait fonctionner à nouveau.

  • Si votre "URL SSL" est en cours d'utilisation, fermez VS, supprimez le fichier "applicationhost.config" du dossier caché .vs de votre projet et ouvrez de nouveau VS.

0
Svenmarim

Windows 10 Defender Firewall le bloquait. Je l'ai éteint, j'ai lancé l'application mvc core 2.0, et cela a fonctionné. J'ai ensuite réactivé le pare-feu Windows et il est resté opérationnel. Toutes les autres solutions bien conçues n’ont pas fonctionné pour moi. J'espère que cela aide quelqu'un là-bas.

0
Michael Karaz

Beaucoup de ceux qui ont répondu ne répondent pas pleinement au problème actuel. Le vrai problème pour moi était que j'avais deux liaisons utilisant le même port dans mon fichier applicationhost.config ET je n'avais pas ouvert le port de ma deuxième liaison (non localhost) . VS vous permettra de continuer à fonctionner dans ces circonstances, mais uniquement si vous êtes en mode administrateur (d'où toutes les réponses ci-dessus).

Vous créez essentiellement deux instances IIS express de votre application sur le même port. Par conséquent, la modification de l'un des ports de votre fichier applicationhost.config vous permettra de continuer. Il existe cependant deux fichiers applicationhost.config différents. Vous voudrez sélectionner celui qui a l'IP de liaison et le port que vous voyez dans les propriétés de votre projet

enter image description here .

Accédez au dossier contenant votre solution de projet et les dossiers de projet (affichez les éléments masqués dans l’explorateur de fichiers). Naviguez dans votre dossier .vs caché -> dossier "YourAppName" -> config. Il devrait contenir les informations de liaison que vous avez vues dans les propriétés de votre projet.

Exemple:

<bindings>
    <binding protocol="http" bindingInformation="*:7000:127.0.0.1" />
    <binding protocol="http" bindingInformation="*:7000:192.168.0.5" />
</bindings>

Remplacez l'un de ces numéros de port par un autre que "7000" afin que vous n'essayiez pas d'utiliser le même port.

Dans mon cas, j'utilise une adresse 192 qui n'est pas une adresse localhost. Je dois donc utiliser des commandes netsh pour ouvrir ce port et l'ip up. Voici un lien qui montre comment ouvrir des ports pour IIS Express afin de permettre la connexion à distance. S'exécuter en tant qu'utilisateur normal ne fonctionnera que si vous exécutez les commandes netsh répertoriées.

Voici les commandes netsh:

  1. netsh http add urlacl url = http://192.168.1.42:58938/ utilisateur = tout le monde
  2. pare-feu netsh advfirewall add nom de règle = "IISExpressWeb" dir = dans le protocole = tcp localport = 58938 profil = privé remoteip = localsubnet action = autoriser

Copiez ces commandes et exécutez-les dans cmd avec les privilèges ADMIN, votre adresse IP et votre numéro de port.

0
MedievalCoder

J'ai eu ce problème sur .net core 2.1, version 15.9.6 de Visual Studio. Quand j'ai supprimé le dossier .vs, j'ai rouvert Visual Studio et le problème était toujours là. La solution qui a fonctionné pour moi ci-dessous:

  1. Supprimer le dossier .vs (c'est un dossier caché).
  2. Redémarrer l'ordinateur.
0
Daniaal

J'ai réparé l'installation de Visual Studio 2017 et cela a fonctionné à nouveau

0
Braytiner

J'utilise VS2017, je désactiveTool > Options > Debugging > Enable JavaScript debugging for ASP.NETpuis je travaille.

0
yu yang Jian

Il suffit de changer tous les numéros de port en nouveaux de toutes les séries de travail ... Ne changez pas l'application hôte .config ...

Pour la suite,  enter image description here Tout ce que je devais faire était de naviguer dans le répertoire de la solution de projet en cours> .vs> config pour supprimer applicationhost.config, puis de redémarrer VS et d’exécuter normalement sans problème.

.vs est un dossier caché

0
AjayCodes