Impossible de lancer le serveur Web IIS Express

310

J'ai une solution asp.net MVC 4. Lorsque j'essaie de l'ouvrir à l'aide de Visual studio 2012, j'obtiens l'erreur suivante:

Microsoft Visual Studio

La configuration de Web https://localhost:pour ASP.NET 4.5 a échoué. Vous devez configurer manuellement ce site pour ASP.NET 4.5 afin que le site s'exécute correctement. Impossible de trouver le serveur https://localhost:44300/sur la machine locale. Assurez-vous que le serveur IIS local a été configuré pour prendre en charge les communications sécurisées.

OK Aide

Bien que la solution s'ouvre. En outre, lorsque j'essaie de l'exécuter à partir du menu de débogage, j'obtiens l'erreur suivante:

 Unable to launch the IIS Express Web server.

The start URL specified is not valid. https://localhost:44300/

et je ne peux pas déboguer le code. comment se débarrasser de ces erreurs et déboguer / exécuter le site Web de VS 2012?

Veuillez suggérer.


DotnetSparrow
la source
4
Les messages d'erreur sont assez clairs sur ce qui ne va pas: 1) You must manually configure this site for ASP.NET 4.5 in order for the site to run correctly.et 2) The start URL specified is not valid.. Vous semblez également utiliser HTTPS; AFAIK IIS Express ne prend pas en charge cela (et si c'est le cas, vous devrez probablement le configurer, d'où la Make sure the local IIS server has been configured to support secure communicationspartie). Edit: Il semble prendre en charge SSL: riii.nl/apr5u , un guide étape par étape de Hanselman lui-même!
RobIII
1
@Robel, je vois que dans les propriétés du site, sous l'onglet application, le cadre cible est 4.5, et dans l'onglet Web, l'action de démarrage est la page actuelle. dois-je changer l'URL du projet en localhost: 44300 ? J'utilise IIS express 8
DotnetSparrow
C'était le réglage du pare-feu :(
Moumit
1
J'ai pu résoudre ce problème en suivant la procédure - 1) Visual Studio - Options -> Rechercher - IIS 2) Cochez "Utiliser la version 64 bits d'IIS Express pour les sites Web et les projets".
NanaFadanvis
Je pense que cela aidera stackoverflow.com/a/54222339/2923956 .
Biswajit Panday

Réponses:

377

J'ai eu exactement le même problème.
La raison - mauvais fichier de configuration IIS.

Essayez de supprimer le IISExpressdossier créé automatiquement , qui se trouve généralement dans %userprofile%/Documents, par exemple C:\Users\[you]\Documents\IISExpress.

Ne vous inquiétez pas, VS devrait la recréer - correctement, cette fois - une fois que vous exécutez à nouveau votre solution.


EDIT: ligne de commande pour supprimer le dossier:

rmdir /s /q "%userprofile%\Documents\IISExpress"
Yehuda Shapira
la source
7
Cela a fonctionné pour moi. Même après avoir désinstallé et réinstallé IIS Express 8, il a conservé le même fichier de configuration, mon problème a donc persisté. J'ai renommé le dossier IISExpress en quelque chose d'autre et un nouveau dossier a été créé avec une version propre du fichier de configuration.
nthpixel
2
"Dans votre dossier par défaut" Où est-ce exactement? Je ne le vois pas du tout dans ma solution.
Corey Ogburn
22
@CoreyOgburn Doit se trouver sous le dossier Documents et IISExpress (c'est-à-dire C: \ Users \ Corey \ Documents \ IISExpress \ Config) et supprimer le dossier config. J'ai le même problème mais cela ne l'a pas résolu pour moi.
Arne H. Bitubekk
49
Merci. N'oubliez pas de fermer puis de rouvrir VS pour qu'il reconfigure l'IIS Express.
Nick.T
6
@crokusek a la réponse pour la mise à jour VS2015 3. Accédez au dossier ".vs \ config" dans le répertoire de la solution et supprimez-y le fichier "applicationhost.config".
AJ.
234

Si vous utilisez VS2015 ou supérieur

Assurez-vous que le processus iisexpress n'est pas en cours d'exécution.

Assurez-vous qu'aucun autre processus n'utilise le port souhaité. Vous pouvez le faire en exécutant

netstat -a -b

dans la console (en tant qu'administrateur, tapez cmddans le menu Démarrer, cliquez avec le bouton droit et choisissez «Exécuter en tant qu'administrateur»). Si vous voyez une entrée dont l'état est ESTABLISHED ou LISTENING par exemple, cela signifie qu'un autre processus utilise ce port. Vous devrez mettre fin à ce processus ou modifier le port.

Supprimez ensuite le fichier suivant

<<path_to_solution_folder>>\.vs\config\applicationhost.config

notez que le .vsdossier peut être masqué

puis recherchez le <<project-name>>.csproj.userfichier, ouvrez-le avec l'éditeur de texte (bloc-notes) et assurez-vous que IISUrlsous WebProjectPropertiesest configuré à l' <IISUrl>http://localhost:XXXXX/</IISUrl>emplacement de XXXXXvotre port souhaité.

après avoir fait cela et essayé de démarrer l'application, vous pouvez obtenir

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

Ensuite, allez dans {Propriétés du projet} -> Web et appuyez sur le bouton "Créer un répertoire virtuel"

entrez la description de l'image ici

Mihail Shishkov
la source
1
Cela a parfaitement fonctionné sur VS2015. Le problème s'est produit après la création d'un projet d'application Web hérité dans la solution principale .NET.
Sebazzz
Cela a fonctionné, les outils de base .NET ont
gâché
Je vis généralement dans le monde OWIN / NancyFx, donc quand j'ai dû faire un projet d'API Web après une interruption, j'étais perplexe, jusqu'à ce que je voie cette réponse. - bon de savoir ce factoïde - merci !!!
code4life
travailler sur VS 2915 @mihail je n'ai rien supprimé, il suffit de créer un répertoire virtuel ... de quoi a-t-il besoin?
abdoutelb
4
@AbdouTelb vérifier cela iis.net/learn/get-started/planning-your-iis-architecture/… en supprimant le fichier .config, vous vous assurez essentiellement que le fichier sera recréé par vs et donc tous les problèmes qui lui sont associés (et il peut y en avoir beaucoup) disparaîtra. Ce fichier est utilisé par IIS Express de la même manière que IIS utilise son propre fichier applicationhost.config, il est donc identique à la restauration des paramètres d'usine par défaut. Créer un répertoire virtuel ne suffit pas à lui seul pour supprimer les problèmes susceptibles de se cacher dans le fichier. Dans votre cas, vous avez juste eu de la chance :)
Mihail Shishkov
85

@roblll avait raison. Mais pour ceux d'entre vous qui ne voulaient pas chercher la réponse, la voici:

  1. Fermez Visual Studio (peut-être pas nécessaire, mais cela ne fera pas de mal).
  2. Accédez à votre dossier Documents. C'est là que se trouvait mon répertoire de configuration IISExpress.
  3. Dans le dossier config, il y a un fichier appelé l'hôte d'application. Ouvre ça.
  4. Recherchez le nom de votre projet. Il aurait dû y être ajouté par Visual Studio lors de son bombardement lors de vos précédentes tentatives.
  5. Notez qu'il existe une liaison pour HTTP avec le port que vous avez l'intention d'utiliser pour https.

    //Change this:
    <binding protocol="http" bindingInformation="*:44300:localhost" />
    
    //to this:
    <binding protocol="https" bindingInformation="*:44300:localhost" />
    

Gardez à l'esprit que Visual Studio peut avoir fourni des ports différents de ceux que vous attendiez. Assurez-vous simplement que les ports de la liaison correspondent à ce qui se trouve dans l'onglet Web des propriétés de votre projet.

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

Jacob Lauzier
la source
5
J'étais en train d'ouvrir un projet développé ailleurs, de changer la configuration du protocole pour le projet en https et de recharger le projet pour éliminer l'erreur. Merci @Jacob!
Geoffrey
Seule la suppression du dossier IISExpress n'a pas résolu pour moi. Après la suppression, lorsque j'ai relancé VS et ouvert ce projet, une boîte de dialogue d'erreur est apparue, qui n'a été résolue qu'après avoir fait cela. Ce projet que j'ai téléchargé sur la page asp.net , c'était un exemple de projet.
Alisson
Btw, si vous avez à la fois des liaisons http et https, assurez-vous que vous n'utilisez pas le même numéro de port sur les deux.
Ziad Akiki
41

J'ai eu le même problème mais la solution qui a fonctionné pour moi était différente.

  1. Dans le débogage ouvert VS2013> Propriétés {YourWebsiteName}
  2. Sélectionnez l'onglet "Web".
  3. Sous "Serveurs", j'ai trouvé que "Remplacer l'URL racine de l'application" était coché. Je l'ai décoché et enregistré.

C'était tout ce dont j'avais besoin pour faire fonctionner les choses.

centralscru
la source
Je vous recommande d'essayer cette solution en premier. Cocher la case avec une URL non valide créera l'erreur mentionnée dans la question.
Timothy
16

Même problème, mais nécessaire pour démarrer VS2013 en mode Admin .

tapis
la source
Malheureusement, cela ne m'a pas aidé.
AH.
16

Essayez les étapes suivantes:

  1. supprimer le IISExpress dossier comme @Yehuda Shapira dit
  2. redémarrer l'ordinateur
  3. supprimer le dossier .vs dans le projet

Bonne chance!

sknight
la source
1
1.Fermez le dossier Visual Studio 2.Supprimez .vs qui a fonctionné pour moi. Si je supprime le dossier .vs alors que VS est ouvert. Ça ne marche pas.
akdora
La suppression du dossier .vs est la seule chose qui a fonctionné pour moi. Le dossier .vs se trouve à l'intérieur du dossier du projet, mais il est masqué par défaut.
George
15

J'ai eu le même problème, puis j'ai ouvert le gestionnaire de tâches -> processus puis tué le processus iisexpress.exe. Après cela, j'ai essayé d'exécuter l'application et j'ai pu l'exécuter avec succès

Vinu
la source
14

Dans mon cas, le projet était sur un lecteur réseau et la suppression du dossier IIS Express n'a pas aidé comme décrit dans les autres réponses. Ma solution consistait à copier le projet sur le disque local et cela a fonctionné!

Amir Chatrbahr
la source
12

J'ai eu le même problème, merci à @Jacob d'avoir donné des informations à ce sujet.

La raison est - entrée incorrecte pour votre projet dans le fichier de configuration applicationhost situé à

C:\Users\(yourusername)\Documents\IISExpress\config 
  1. Fermez toutes les solutions Visual Studio.
  2. Renommez le dossier IISExpress en une copie IISExpress (au lieu de le supprimer, vous pouvez en avoir une copie)
  3. Maintenant, ouvrez à nouveau VS et générez / déboguez le projet, vous verrez maintenant le dossier IISExpress créé pour vous avec une configuration correcte.

Cela a fonctionné pour moi et j'espère que cela devrait également fonctionner pour vous.

user2732247
la source
J'ai essayé les étapes décrites dans les autres réponses, mais c'est celle qui a fonctionné pour moi. J'ai dû renommer le IISExpressdossier. La supprimer n'a pas fonctionné pour moi.
webworm
ne fonctionne pas pour moi. tout a commencé quand j'ai joué avec https
Toolkit
9

J'ai eu le même problème, la cause était que l'indicateur "remplacer l'URL de la racine de l'application" a été défini sous Propriétés -> Web Après avoir supprimé l'indicateur, IIS Express commençait bien avec le port défini.

vm370
la source
8

Il semble que vous deviez effectuer une configuration car vous semblez utiliser SSL; voici un guide étape par étape de Scott Hanselman lui-même.

RobIII
la source
@Roblll, je ne vois pas l'option Utiliser IIS Express lorsque je clique avec le bouton droit sur mon projet MVC dans VS 2012, je l'ai vu dans VS 2010. J'essaie d'activer SSL pour la solution dans les fenêtres de propriétés et il indique que la propriété n'est pas valide. De plus, dans le fichier applicationhost.config, je vois plusieurs entrées pour mon application comme Webapplication (1), Webapplication (2), Webapplication (3)
DotnetSparrow
J'ai eu le même problème et je l'ai surmonté en exécutant VS2012 en tant qu'administrateur ( stackoverflow.com/a/13682315 ). Je ne suis pas trop content de cette solution mais je n'en ai pas trouvé d'autres.
brudert
Dans mon projet, j'ai remarqué que le même numéro de port était utilisé pour SSL et non SSL. J'ai donc corrigé cela et l'erreur a disparu.
orad
5

La seule solution qui a fonctionné pour moi a été de créer un autre projet de test. Ensuite, suivez les étapes suivantes:

  1. Cliquez avec le bouton droit sur le projet et accédez à Propriétés -> Web

  2. Sous l'URL du projet dans la section Utiliser le serveur Web IIS local, copiez l'URL du projet (http: // localhost: 59002 /) - il s'agit du projet de test.

  3. Accédez au projet qui génère cette erreur. Cliquez avec le bouton droit sur le projet et accédez à Propriétés -> Web.

  4. Collez l'URL du projet dans la section Utiliser le serveur Web IIS local (URL copiée à partir du projet de test). Fermez le projet de test et enregistrez.

  5. Supprimez le projet de test et exécutez le projet à l'origine de l'erreur. Fonctionne après cela ...

Ce n'était peut-être pas le meilleur moyen, mais c'était le seul moyen pour que cela fonctionne. J'ai reçu ce message d'erreur après avoir rechargé mon ordinateur portable (le disque dur est tombé en panne) et obtenu tous mes projets depuis le serveur de l'endroit où ils étaient hébergés.

Kerieks
la source
Je ne sais pas vraiment ce que j'ai fait pour ma solution, mais c'était aussi la seule façon de la corriger. J'ai même essayé de jouer avec la commande netsh, de supprimer le dossier IISExpress, de démarrer VS en mode Admin et rien d'autre n'a fonctionné. Je ne sais pas où l'url: port est mappé, mais prendre l'URL d'un autre projet m'a semblé la seule solution.
Sergio A.
5

Partager cela pour les futurs lecteurs. La création manuelle d'un répertoire virtuel a fonctionné pour moi.

  • Sélectionnez un projet dans l'explorateur de solutions
  • Appuyez sur Alt+Enter
  • Accéder à la section Web
  • Cliquez sur Créer un répertoire virtuel
Mohammed Zameer
la source
4

Dans mon cas, après avoir autorisé la demande externe vers mon site Web IIS Express et configuré le pare-feu Windows pour autoriser iisexpress.exe, je ne peux pas le démarrer à partir de Visual Studio 2013. Je peux toujours le démarrer avec la ligne de commande et il sert local et externe demande bien.

C:\Program Files (x86)\IIS Express>iisexpress /site:MyWebSiteName

J'ai essayé de créer une règle de pare-feu pour autoriser mon port, après que VS a fonctionné.

deerchao
la source
3

J'ai eu le même problème avec VS 2013 et même après tous les essais possibles, cela ne fonctionnait pas. Mon problème a été résolu par:

- In control panel (Program and Features) I found that all of the IIS related features were unchecked.I finally checked all of those and restarted my system.
- Then I started my VS 2013 as administrator and thats it everything
   worked fine then.

Au moins, vous pouvez essayer, car cela a fonctionné pour moi.

Saroj
la source
3

Après deux heures de recherche sur le Web, j'ai trouvé ma solution en tant qu'étapes ci-dessous - Fermer Visual Studio - Supprimer le dossier .vs de votre projet - Ouvrir Visual Studio et relancer le projet

ça marche pour moi passe un bon moment

Ali Sadri
la source
2

Nous avons eu le même problème avec nos sites. Nous avons pu résoudre ce problème à l'intérieur de Visual Studio. Nous utilisons 2012 Ultimate.

Le problème sous-jacent que nous avons vu était qu'avec SSL activé, pour une raison quelconque, VS assignait le même port pour les URL standard et sécurisées. Ce problème semblait survenir lorsque nous retirions le code de TFS.

Pour y remédier, nous avons entrepris les étapes suivantes:

  1. Cliquez avec le bouton droit sur le projet et accédez à Propriétés -> Web
  2. Sous l'URL du projet dans la section Utiliser le serveur Web IIS local , supprimez le «s» de l'URL et enregistrez. (EG. Passez de https: // : 44301 à http: // : 44301. Cela permettra à la prochaine étape de fonctionner)
  3. Dans l'Explorateur de solutions, sélectionnez le projet et dans la fenêtre Propriétés (appuyez sur F4 s'il n'est pas affiché), changez SSL activé en Faux puis revenez à Vrai . Il générera un nouveau port différent de l'URL standard (dans mon cas, j'ai 44301 comme SSL et 44305 comme standard)
  4. Revenez à Propriétés -> Web et ajoutez le "s" à l'URL du projet.
  5. F5 et ride!

Assurez-vous que la case à cocher Remplacer l'URL racine de l'application n'est pas cochée.

JimmyV
la source
2

vérifiez le pare-feu antivirus et autorisez l'accès de Visual Studio au réseau. par exemple dans nod32:

goto setting (f5) -> network->personal firewall->rules and zones

dans le " zone and rule editor" clic " setup" et trouvez le vs 2010ou 12ou ... et autorisez l'accès au réseau.

hadi ab
la source
2

Après avoir désactivé le pare-feu, j'ai pu l'exécuter sans aucun problème.

Mahaling Khubba
la source
2

J'ai rencontré cette erreur aujourd'hui. Exécution de Win 8.1 et VS 2013. Soudain, mes projets ne pouvaient plus fonctionner et j'ai reçu le message "Impossible de lancer le serveur Web IIS Express" et aucune autre information.

Après un certain temps, j'ai découvert que tous les projets que IIS Express ne pouvait pas démarrer exécutaient tous .net 3.5. Les projets exécutant des versions ultérieures ont démarré correctement.

La solution pour moi était de supprimer .net 3.5 (du panneau de configuration -> activer / désactiver les fonctionnalités de Windows), redémarrer Windows et ajouter à nouveau .net 3.5.

fefferoni
la source
2

J'ai eu le même problème, dans mon cas, je viens de nettoyer puis de reconstruire ma solution et cela a fonctionné pour moi

RCanhestro
la source
2

Eh bien, aucune des étapes mentionnées ci-dessus n'a fonctionné pour moi. Dans mon cas, mon applicationhost.configfichier manquait en quelque sorte les deux lignes de code suivantes

 <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
    <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />

J'espère que cela peut aider quelqu'un.

Anshuman Jasrotia
la source
2

Avant d'essayer autre chose, assurez-vous 1. de redémarrer Visual Studio (principalement pour actualiser les options résidentes de la mémoire à partir de fichiers) et 2. de redémarrer votre système (principalement pour le verrouillage de fichiers non valide). Si votre problème est temporaire ou auto-corrigé, cela ne changera rien. Cela a fonctionné pour moi avec le redémarrage du PC. De plus, si vous travaillez sur un projet multi-utilisateur, assurez-vous que vous disposez de la dernière version utilisable - quelqu'un d'autre peut avoir archivé quelque chose de non valide par erreur, par exemple dans le fichier de projet et vous salissez votre système sans raison. Si ceux-ci ne fonctionnent pas, vous devrez probablement modifier certains paramètres bloqués, manquants ou nécessitant des modifications - il existe de nombreuses propositions sur d'autres réponses.

Stefanos Zilellis
la source
1

J'ai rencontré un problème similaire lors de l'exécution de ma solution à partir de VS2012:

Unable to launch the IIS Express Web server.  
The start URL specified is not valid. https://localhost:44301/

J'ai fait sélectionner le projet incorrect comme projet de démarrage. J'ai fait du projet Cloud le démarrage (clic droit sur le projet -> Définir comme projet de démarrage) et tout a bien fonctionné.

scottndecker
la source
Devrait également ajouter que l'URL de démarrage devrait être définie ou définie sur "Page actuelle" ou "Page spécifique" - au moins cochée. Le mien était défini sur "Ne pas ouvrir une page. Attendre une demande d'une application externe" et j'ai eu cette erreur en conséquence, en plus du problème du projet de démarrage.
vapcguy
@Moumit avez-vous voté contre? Pouvez-vous expliquer votre commentaire?
scottndecker
1

La série d'articles de Jason's Shavers ici http://jasonrshaver.com/?tag=/Client+Certificates explique exactement comment configurer votre entrée de site applicationhost.config pour permettre à l'application de s'exécuter en ssl ou en http standard.

Il recommande notamment de mettre deux entrées contraignantes pour le site. C'est ce que j'ai fait.

            <bindings>
                <binding protocol="http" bindingInformation="*:59945:localhost" />
                <binding protocol="https" bindingInformation="*:44300:localhost"/>
            </bindings>

Il recommande également de modifier d'autres paramètres également. Cela a fonctionné sur deux de mes trois machines. Chaque fois que l'on me dit de configurer manuellement un site dans l'hôte d'application, cela a généralement à voir avec les liaisons. (exemple utilisant le même port pour plusieurs applications Web.)

user1161391
la source
1

J'ai eu le même problème après l'installation de Visual Studio 2013 Update 3.
VS 2013 can not load Microsoft.VisualStudio.TraceLogPackage.dll
Unable to launch the IIS Express Web server

Mon problème a été résolu en procédant comme suit:

1. Réparez Visual Studio 2013 Update 3
2. Démarrez en Developer Command Prompttant qu'administrateur.
3. Tapez devenv.exe /setuppuis appuyez sur entrée

Mohammad Dayyan
la source
1

J'ai eu le même problème. J'avais supprimé beaucoup de dossiers sous le C:/users/chemin pour libérer de l'espace sur ma machine. Après quoi j'ai commencé à obtenir cette erreur.

J'ai juste dû redémarrer ma machine et tout a bien fonctionné.

Yasser Shaikh
la source
1

Mon problème nécessitait une solution triple:

  1. Supprimez le dossier IISExpress dans votre dossier Documents.
  2. Définissez le projet Web comme projet de démarrage en cliquant dessus avec le bouton droit et en sélectionnant «Définir comme projet de démarrage», ou en le faisant via les propriétés de votre solution.
  3. Définissez l'URL de démarrage ou définissez sur "Page actuelle" ou "Page spécifique". Le mien était réglé sur "Ne pas ouvrir une page. Attendre une demande d'une application externe" et j'ai dû la changer en "Page spécifique", que je laisse vide pour qu'elle accède à la page d'accueil de mon application, avant qu'elle ne le fasse. travail.
vapcguy
la source
1

Mon problème a finalement été résolu lorsque j'ai examiné la clé de registre IIS Express:

HKEY_CURRENT_USER\Software\Microsoft\IISExpress

J'avais une entrée CustomUserHomepointant vers Mes sites Web qui causait des ravages.

AndyKenZ
la source
1

J'avais configuré le partage de connexion Internet sur ma machine pour les machines virtuelles. Je l'ai désactivé et j'ai pu déboguer dans Visual Studio 2015 . Cependant, pour déboguer régulièrement après un redémarrage, je devais définir le service Partage de connexion Internet pour un démarrage manuel, même si aucune de mes connexions Internet n'avait le Partage de connexion Internet activé.

Giles Roberts
la source