web-dev-qa-db-fra.com

Une erreur se produit lors du chargement de mon application ASP.NET après sa configuration pour IIS

J'ai modifié mon application Web ASP.NET pour qu'elle utilise Local IIS au lieu de IIS Express. Maintenant, après la réouverture de la solution, l'erreur suivante se produit lors du chargement de l'application:

erreur: Impossible d'ouvrir le projet 'Atlas2' car le compilateur Visual C # 2015 n'a pas pu être créé. 'Atlas2' fait déjà partie de l'espace de travail.

erreur: le projet 'Atlas2' n'a pas pu être ouvert car Visual C # Le compilateur 2015 n'a pas pu être créé. Un article avec la même clé a déjà été ajouté.

Est-ce que quelqu'un pourrait m'aider, s'il vous plaît, à recharger mon projet?.

23

J'ai résolu mon problème. J'ai déchargé le projet et modifié le fichier .csproj. J'ai fait les changements suivants:

  • <UseIISExpress>false</UseIISExpress> à true
  • Supprimer <UseIIS>True</UseIIS>
  • Supprimer <IISUrl>http://localhost/MyWebApp</IISUrl>

Puis j'ai rechargé le projet. Ça a marché. En fait, l'utilisation de IIS Express a été annulée.

34

Le même problème s'est produit sur mon système et a été résolu en exécutant Visual Studio en mode administrateur. Le problème était IIS le même nom de port + hôte que le projet ASP.NET et sans droits d'administrateur, Visual Studio n'a pas pu ajouter le site Web.

25
Vishnu

J'avais cette erreur après être passé de IIS Express à IIS complet avec Visual Studio 2015 . J'ai pu charger le projet lorsque j'ai exécuté Visual Studio en tant qu'administrateur.

6
red_dorian

Je recevais une erreur similaire dans VS 2015. 

"ne peut pas être ouvert car le compilateur Visual C # 2015 n'a pas pu être créé " "avec la même clé a déjà été ajouté"

J'ai pu résoudre le problème en ouvrant la solution dans Visual Studio 2013, en nettoyant la solution, en fermant Visual Studio, puis en ouvrant la même solution dans Visual Studio 2015. 

J'ai également remarqué qu'après cette séquence d'événements, le fichier csproj du projet à l'origine de cette erreur mettait à jour son élément ProjectExtensions et définissait <UseIIS>False</UseIIS>.

Image ci-dessous de diff entre csproj en cas d'erreur et après la solution de contournement. 

 enter image description here

N'oubliez pas qu'avant d'utiliser cette solution de contournement, j'avais essayé de mettre à jour cet élément manuellement et de le définir sur false, mais cela ne fonctionnait pas. 

4
joey

Le problème est que l'application a été configurée pour utiliser local IIS à la place d'Express et que leur problème peut être lié à deux problèmes pour lesquels vous ne pouvez pas charger l'application.

Issue 1. IIS n'est pas installé sur votre système local. Dans ce cas, vous devez installer IIS ou ouvrir le fichier .csproj et exécuter changements:

  <UseIISExpress>false</UseIISExpress> to true
  Remove <UseIIS>True</UseIIS>
  Remove <IISUrl>http://localhost</IISUrl>

Issue 2. Visual Studio n'a pas accès à IIS, dans ce cas, ouvrez Visual Studio en mode administrateur.

3
Shubham

J'étais confronté à un problème similaire mais aucune des solutions mentionnées ne fonctionnait pour moi. 

Cependant, j’ouvrais ma solution à partir de la liste des solutions récentes de visual studio. Mais lorsque j'ai ouvert le fichier de solution à partir de l'explorateur en double-cliquant dessus, le projet s'est chargé correctement.

2
th1rdey3

Cela se produit souvent lorsque l’authentification n’a pas été configurée dans IIS ou que le site Web (ou le répertoire virtuel) n’a pas été configuré dans IIS. Pour résoudre ce problème, ouvrez le gestionnaire IIS.

  1. Assurez-vous qu'un site Web ou un répertoire virtuel existe pour le projet et pointe vers le dossier contenant le dossier bin de votre projet.
  2. Ouvrez l'authentification et activez l'authentification anonyme.
  3. Cliquez sur Modifier alors que l'authentification anonyme est sélectionnée.
  4. Sélectionnez Utilisateur spécifique, entrez vos informations d'identification Windows (domaine\nom d'utilisateur).
  5. Ouvrez les règles d'autorisation .NET.
  6. Assurez-vous que seul Autoriser/Tous les utilisateurs existe.
  7. Allez dans Pools d'applications -> Paramètres avancés.
  8. Sélectionnez Identité et entrez vos informations d'identification Windows (domaine\nom d'utilisateur).

Cela devrait ouvrir le site Web afin que Visual Studio puisse charger votre projet. Sinon, accédez aux Paramètres avancés de votre site et sélectionnez Informations d'identification du chemin d'accès physique. Assurez-vous qu'il est configuré pour l'authentification unique.

2
Clint B

Je recevais cette erreur.

J'utilise IIS-Express. Et j'ai VS2015.

Après avoir bricolé avec le fichier .csproj ..., j’ai réussi à le faire fonctionner.

Après avoir comparé mon fichier actuel à ce qui se trouvait dans le contrôle de source TFS, la seule différence était cette ligne.

Auparavant, cette ligne n'existait pas. Dans mon dossier "de travail" (après le traitement), j'avais

<UseGlobalApplicationHostFile />

Encore une fois, dans le csproj qui cause l'erreur, je n'avais pas la ligne magique, mais dans le csproj de travail, je l'avais.

Ci-dessous, la ligne ci-dessus, dans son contexte. N'utilisez le texte ci-dessous que pour la chapelure, ne copiez/collez pas tout. La ligne magique est 3 à partir du bas.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>
    </ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}</ProjectGuid>
    <ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MyRootNamespace</RootNamespace>
    <AssemblyName>MyAssemblyName</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <MvcBuildViews>false</MvcBuildViews>
    <UseIISExpress>true</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
    <IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>
    <IISExpressUseClassicPipelineMode>false</IISExpressUseClassicPipelineMode>
    <SccProjectName>SAK</SccProjectName>
    <SccLocalPath>SAK</SccLocalPath>
    <SccAuxPath>SAK</SccAuxPath>
    <SccProvider>SAK</SccProvider>
    <UseGlobalApplicationHostFile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
0
granadaCoder

J'ai créé un nouveau fichier Sln.


Fermez la solution.

Ouvrez le fichier de projet du projet principal. Ajoutez les projets incriminés dans le nouveau fichier Sln.

Enregistrez le fichier Sln par-dessus l’ancien fichier défectueux.

0
Jeremy Thompson

J'ai eu ce problème avec une mise à niveau pour Visual Studio 2017. Ce problème a été corrigé et est désormais disponible dans une version mise à jour. 

Vous pouvez télécharger la dernière mise à jour via la notification intégrée au produit ou à partir de https://www.visualstudio.com

Ref: Impossible d'ouvrir le projet car le compilateur Visual C # 2017 n'a pas pu être créé

0
Jawid

J'ai eu le même problème lorsque j'ai déplacé mon service WCF REST d'IISExpress vers localhost. J'ai donc ouvert le fichier .csproj dans le Bloc-notes et cherché UseIISExpress, modifié sa valeur de false à True . Ensuite, j'ai ouvert VS2015 en tant qu'administrateur et tout a fonctionné. La bonne chose est que lorsque je lance le projet, il est toujours actif sur mon hôte local et non sur IISExpress.

0
Maryam