Le projet d'application Web […] est configuré pour utiliser IIS. Le serveur Web […] est introuvable.

285

J'ai un projet Web dans mon fichier de solution qui est "indisponible" lorsque j'ouvre la solution. Lorsque je clique avec le bouton droit sur le projet Web et recharge le projet, j'obtiens l'erreur suivante:

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

Je n'ai pas configuré manuellement de répertoires virtuels pour cette application Web.

Par mes collègues, Visual Studio devrait m'inviter à créer des répertoires virtuels mais je ne reçois pas d'invite.

J'ai installé VS2010 avant d'installer IIS sur ma machine de développement.

Voici ma configuration de machine de développement:

  • Windows 7 Entreprise
  • Service Pack 1
  • OS 64 bits
  • Visual Studio 2010 Enterprise Service pack 1
  • IIS version 7.5
praticien dotnet
la source

Réponses:

87

Lorsque cela se produit, la solution la plus simple consiste à créer manuellement le répertoire virtuel.

Tout d'abord, vous devez vous assurer que la bonne version d'ASP.Net est installée et que vous avez installé les extensions IIS.

Pour ce faire, accédez au dossier de la version .net appropriée dans C: \ (Windows) \ Microsoft.NET \ Framework \ (dotnetver) \ (en remplaçant les dossiers entre crochets par les bons dossiers sur votre PC) et exécutez cette commande

aspnet_regiis.exe -i

Ensuite une fois que c'est exécuté et terminé, parfois en cours d'exécution

iisreset

à partir de la ligne de commande aide, parfois vous n'en avez pas besoin.

Ensuite, accédez à votre gestionnaire IIS et trouvez votre site Web localhost et choisissez ajouter un dossier. Accédez au dossier de votre projet qui contient le projet ASP.Net réel et ajoutez-le.

Enfin, faites un clic droit sur le dossier que vous avez ajouté et vous devriez avoir une option qui dit «convertir en application» ou «créer un répertoire virtuel» ou quelque chose de similaire.

!! Assurez-vous que le répertoire virtuel porte le nom 'MyWebApp' !!

Rechargez votre solution et cela devrait fonctionner.

Veuillez vous méfier; ce n'est pas une question de programmation (et ne devrait pas vraiment être posté ici) mais j'ai posté ce guide car c'est un problème commun, mais le conseil que j'ai posté est générique; les commandes que j'ai répertoriées sont correctes mais les étapes que vous devez effectuer dans IIS peuvent varier, cela dépend de votre version et des privilèges de votre compte.

Bonne chance!

Russ Clarke
la source
J'ai suivi les instructions et obtenu l'erreur suivante .. J'ai supprimé mon répertoire virtuel à cause de cette erreur pour commencer. Impossible d'ajouter une entrée de collection en double de type «ajouter» avec l'attribut de clé unique «nom» défini sur «Telerik_Web_UI_WebResource_axd»
dotnet-practer
Qu'est-ce qui donne cette erreur, IIS ou Visual Studio lorsque vous démarrez la solution?
Russ Clarke
Aussi, consultez le web.config pour votre nouveau projet asp.net, il fait avoir deux ou plusieurs références à 'Telerik.WebResource.axd' il n'en a besoin que d'un.
Russ Clarke
J'ai vérifié web.config .. lorsque je supprime l'entrée incriminée, je reçois le message d'erreur indiquant que l'entrée supprimée est nécessaire.
dotnet-pratiquant
sur le point de publier une question distincte sous peu pour le nouveau message d'erreur
dotnet-pratiquant
523

Étant donné que la réponse acceptée requiert le gestionnaire IIS et qu'IIS Express n'a pas le gestionnaire IIS ni aucune interface utilisateur, voici la solution pour vous les utilisateurs IIS Express (et devrait également fonctionner pour tout le monde):

Lorsque vous ouvrez Visual Studio et obtenez le message d'erreur, cliquez avec le bouton droit sur l'Explorateur de solutions du projet et choisissez «Modifier {ProjectName} .csproj»

Dans le fichier de projet, modifiez la ligne suivante:
<UseIIS>True</UseIIS>
pour
<UseIIS>False</UseIIS>
enregistrer le fichier.

Rechargez maintenant votre projet.
Terminé.

Vous pourrez alors ouvrir votre projet. Si à ce stade, vous souhaitez utiliser IIS, accédez simplement aux propriétés de votre projet, cliquez sur l'onglet "Web" et sélectionnez l'option pour utiliser IIS. Il y a le bouton "Créer un répertoire virtuel". Il peut vous indiquer que vous devez exécuter Visual Studio en tant qu'administrateur pour créer ce répertoire, faites-le si nécessaire.

Doug S
la source
33
dans VS2010 UseIIS n'est pas dans le fichier csproj, mais dans le fichier
.csproj.user
2
Dans mon cas, je veux toujours utiliser IIS, j'ai donc simplement changé l'URL, j'ai parfaitement fonctionné.
kjetilh
J'ai eu ce problème lors de la mise à niveau et du déplacement. Cela a fonctionné pour moi, bien que puisque la solution ne se chargeait pas, je viens d'ouvrir le csproj dans l'éditeur de texte. Merci Doug.
Kieran
2
Ceci est la bonne réponse. Le projet est configuré pour utiliser à la fois IIS et IISExpress.
Aaron Reed
2
Avec VS2013, je ne vois pas Edit {ProjectName} .csproj lorsque je clique avec le bouton droit sur la solution. J'ai effectué la modification en accédant au système de fichiers et en modifiant manuellement le fichier .csproj. C'était en lecture seule, donc j'ai dû faire une petite danse, mais ça a fonctionné.
Al Lelopath
222

Ouvrez le dossier du projet et supprimez {Project} .csproj.user , puis rechargez le projet sur Visual Studio.

qjuanp
la source
2
J'étais le seul de notre équipe à voir cette erreur IIS. L'équipe de développement avec laquelle je travaille avait le même fichier .csproj du contrôle de code source, les autres solutions ci-dessus n'étaient donc pas mon problème. Il s'avère que le fichier .csproj.user que vous avez mentionné était à l'origine de cette erreur dans ma situation. Merci!
My Stack Overfloweth
3
Cela a fonctionné pour moi après avoir essayé presque tout le reste
David
3
Ceci est la bonne réponse. Il résout un problème avec la configuration du projet sur votre machine (particulièrement important lorsque vous travaillez avec TFS).
Markus
1
C'est également la solution si vous avez défini une balise iisurl personnalisée mais que le projet démarre toujours sur l'hôte local <IISUrl> MachineName.domain: 12345 / </ IISUrl >
lsp
5
Celui-ci a fonctionné pour moi. Il n'y avait pas de paramètre <UseIIS> dans mon cas.
Techgration
33

Cette solution a fonctionné pour moi: cliquez avec le bouton droit sur le projet et sélectionnez modifier et recherchez le code suivant comme indiqué ci-dessous dans l'image.

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

OU

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

capture d'écran csproj

Umar Abbas
la source
30

pour moi, j'ai dû supprimer ces deux lignes du fichier .csproj

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

J'ai essayé de supprimer uniquement le premier, mais ce n'était pas suffisant.

EDIT: Comme de nombreux utilisateurs l'ont souligné, cela peut changer votre type de projet ou gâcher votre programme de contrôle de source. Je ne peux pas enquêter sur ces problèmes car c'était un projet d'école que je n'ai plus. Veuillez faire attention lorsque vous essayez ceci. Faites au moins une copie de ce que vous supprimez.

kisslory
la source
9
Celui-ci a fonctionné et celui-ci devrait être marqué comme réponse. J'ai essayé de nombreuses solutions comme suggéré dans SO, mais aucune n'a fonctionné pour moi, sauf celle-ci.
Bose_geek
3
Après avoir essayé toutes les suggestions ci-dessus, c'est celle qui a réellement fonctionné pour moi. Merci mon mec!
Noble-Savage
2
Cela change le type de projet, ce n'est donc plus une application Web.
Oram
3
Ce n'est pas une bonne idée de supprimer <ProjectGuid> du fichier .csproj. Pour charger le projet, il suffit de supprimer uniquement <ProjectTypeGuids>, ce qui est également une mauvaise idée car il change le type de projet, comme l'a mentionné @Oram. Cette réponse est bonne si vous ne voulez pas valider vos modifications, regardez simplement le code dans VS.
elshev
1
Cela a résolu les erreurs de chargement de l'explorateur de solutions que j'ai rencontrées avec une solution Visual Studio 2010 développée par un entrepreneur que je déménage en 2013. Le fichier de solution a 2 projets; une application web et un service web. Je n'ai pas pu charger l'un ou l'autre, donc l'Explorateur de solutions n'affichait que deux dossiers vides après avoir tenté d'ouvrir le fichier de solution. Une fois que j'ai commenté les lignes ProjectGuid et ProjectTypeGuids suggérées, je pouvais voir les dépendances de ces projets dans l'Explorateur de solutions. Pour moi, c'était une option à haut risque et à faible risque car je pouvais facilement annuler ces changements. Merci!
JohnH
26

Modifiez le fichier .csproj ou vbproj. Recherchez et remplacez ces entrées

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>
jcmordan
la source
1
J'ai également dû changer DevelopmentServerPort à une valeur autre que 80.
JoshNaro
1
Et si vous ne trouvez pas les paramètres dans le fichier csproj. Ouvrez le fichier .csproj.user et faites-le là.
devzero
10

Dans mon cas, ce problème a été causé par des liaisons IIS rompues. Plus précisément, ma liaison «http» a été supprimée. Le recréer a résolu le problème.

Roger Lipscombe
la source
J'ai rencontré un problème très similaire. Ma liaison HTTP a semblé se renommer un jour -_- Le paramètre du fichier de projet pour <IISUrl>n'avait pas changé (merci SVN d'avoir confirmé ma mémoire et ma raison) mais d'une manière ou d'une autre la liaison iis avait. Fixé et le projeté chargé immédiatement.
Patrick M
N'oubliez pas de vérifier si vous avez changé le sni / nom d'hôte du site cible pour une raison quelconque. Cela a provoqué l'erreur dans mon cas.
juarola
5

Essayez d'ouvrir Visual Studio avec des privilèges d'administrateur. Dans mon cas, il a donné accès au site IIS et a fait disparaître cette erreur. J'ai ensuite pu changer de projet pour utiliser IIS Express qui ne semble pas avoir besoin de privilèges d'administrateur.

kad81
la source
5

Cela a fonctionné pour moi: -
Faites en sorte que tous vos sites Web IIS pointent vers localhost (All Unassigned) uniquement

entrez la description de l'image ici

JerryGoyal
la source
5

Si vous êtes connecté via TFS, ouvrez votre fichier project.csproj.user et recherchez

<UseIISExpress>false</UseIISExpress>

et changez-le en vrai.

<UseIISExpress>true</UseIISExpress>
Patrick Dengler
la source
Bien que je pense qu'il s'agit plus d'une solution de contournement au problème que de la solution réelle, je lui ai donné un coup de pouce car cela a résolu ma préoccupation immédiate.
Nandun
A bien fonctionné :)
Hammad Sajid
4

Vous pouvez charger le projet sans définir la valeur de l'attribut UseIIS sur true. Suivez simplement les étapes ci-dessous:

Dans le fichier mywebproject.csproj--

Supprimez la balise <IISUrl> http: // localhost / MyWebApp / </ IISUrl> et enregistrez le fichier. L'application lui attribuera automatiquement le port par défaut.

Yogesh Gangwar
la source
4

Vous ne le croirez pas, startVisual Studio en tant qu'administrateur

aussi évident d'après le message

Le serveur Web « http: // localhost / MyWebApp » est introuvable.

n'a pas pu être trouvé car it has no privileges to see it

donc Just restartVisual Studio en tant qu'administrateur

Basheer AL-MOMANI
la source
3

Dans mon cas, je voulais passer de http à https, j'ai donc supprimé http d'IIS. Dans mon fichier .csproj.user, j'ai trouvé que j'avais encore:

<IISUrl>http://localhost/</IISUrl>

Je l'ai donc changé en:

<IISUrl>https://localhost/</IISUrl>
Njaal Gjerde
la source
2

Dans mon cas, j'ai pu ouvrir la solution en mode hors ligne en exécutant simplement la commande:

iisreset
Conrado Fonseca
la source
2

Pour vous les utilisateurs de Win8, si vous suivez les étapes de la réponse acceptée, la console vous crache un message disant "tu n'utiliseras pas la ligne de commande pour exécuter cette commande" (paraphrase). Au lieu de cela, accédez aux programmes et fonctionnalités via le panneau de configuration (ou Windows + R> appwiz.cpl), cliquez sur «Activer ou désactiver les fonctionnalités Windows» et assurez-vous que les éléments suivants sont installés:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

Cela vérifiera également un tas d'autres options. Dès que j'ai installé ces fonctionnalités et exécuté VS2012 avec des autorisations élevées, j'ai pu lancer mon application avec succès.

Scott Silvi
la source
2

Cela se produit avec moi lorsque j'ai essayé d'ouvrir un projet à partir du fichier .csproj, mais je m'en remets en ouvrant le projet à partir de VS:

Fichier> Ouvrir> Site Web

et sélectionnez le répertoire qui comprend mon projet.

mshwf
la source
1

J'ai aussi eu cette erreur. Je pensais que tout était correctement configuré, mais j'ai découvert qu'une chose manquait: le nom d'hôte que j'ai utilisé pour mon projet n'était pas (encore) résolvable.

Étant donné que mon application détermine le nom du client actuel à partir du nom d'hôte, j'ai utilisé un nom d'hôte comme clientname.mysuperapp.localpour le développement. Lorsque j'ai ajouté le nom d'hôte de développement à mon hostsfichier, le projet était à nouveau chargeable. Évidemment, je devais le faire de toute façon, mais je n'ai pas pensé que VS vérifie le nom d'hôte avant de charger le projet.

fero
la source
1

Vérifiez si IIS Express est installé. Si IIS Express est manquant, Visual Studio peut ignorer le paramètre <UseIISExpress>false</UseIISExpress>et toujours rechercher l'express.

Le A
la source
1

dans mon cas, assurez-vous d'avoir un site Web "par défaut"

a dessiné
la source
1

Dans mon cas, le «site Web par défaut» dans IIS n'avait pas de liaison pour localhost sur le port 80. Vous devriez avoir une liaison pour quelle que soit votre valeur dans le fichier .csproj.

Dan Mirescu
la source
1

J'ai résolu cela simplement en réinstallant IIS Express après le téléchargement à partir du lien ci-dessous:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264

Matthieu
la source
1
Cela ne fournit pas de réponse à la question. Une fois que vous avez une réputation suffisante, vous pourrez commenter n'importe quel message ; fournissez plutôt des réponses qui ne nécessitent aucune clarification de la part du demandeur . - De l'avis
FluffyKitten
@FluffyKitten J'ai eu la même erreur que l'OP, j'ai essayé toutes les autres réponses et rien n'a fonctionné de réinstaller IIS Express. Je pense donc que c'est ma réponse à la question du PO. Réinstallez IIS.
Matthew
Votre réponse a été signalée comme de faible qualité et passe par un processus de révision (notez le "De la critique" à la fin du commentaire). Bien que cela puisse fonctionner, la réinstallation du logiciel est une option de dernier recours lorsque rien d'autre ne fonctionne et n'est pas une solution spécifique pour le problème de ce PO.
FluffyKitten
Si c'est une option de dernier recours après que rien d'autre ne fonctionne - et selon Ajay2707, aucune des autres réponses ne pourrait fonctionner pour une pauvre âme - alors je pense que cette réponse pourrait être utile. Comment pouvez-vous désigner une réponse comme étant de faible qualité alors que cela pourrait être la seule chose qui fonctionne pour certaines personnes? Je vous soutiens Ajay2707. Merci d'avoir pris le temps de contribuer à la communauté.
nardnob
Inb4 cette conversation est déplacée / supprimée comme étant de mauvaise qualité. viva la resistance !!
nardnob
0

Dans mon cas, l'URL référencée dans le fichier csproj était incorrecte.

Il devait être préfixé par www.

J'ai apporté les modifications, enregistré le fichier et le projet s'est bien chargé.

Patrick Fischer
la source
0

J'ai rencontré ce problème lorsque l' <ProjectTypeGuids>élément du fichier .csproj contenait le GUID du projet de test unitaire:{3AC096D0-A1C2-E12C-1390-A8335801FDAB} .

Le retirer a rendu le projet sans problèmes.

MvdD
la source
0

Pour les utilisateurs de DNN, mon problème était que j'avais besoin d'une liaison pour dnndev.me au port 80. J'ai plusieurs installations qui s'exécutent sur différents ports et VS nécessite que cette URL particulière existe sur le port 80 (pas 86 comme la mienne).

Mickers
la source