web-dev-qa-db-fra.com

VS 2012 ne peut pas charger un projet qui utilise IIS avec un hôte de liaison personnalisé - pense qu'il utilise IIS Express

J'ai un projet ASP.NET qui utilise IIS. IIS est configuré pour utiliser un nom d'hôte de liaison personnalisé. Le fichier de projet contient les paramètres suivants:

...
<UseIISExpress>false</UseIISExpress>
...
<ProjectExtensions>
  <VisualStudio>
    <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
      <WebProjectProperties>
        <UseIIS>True</UseIIS>
        <AutoAssignPort>False</AutoAssignPort>
        <DevelopmentServerPort>8662</DevelopmentServerPort>
        <DevelopmentServerVPath>/</DevelopmentServerVPath>
        <IISUrl>http://custom.Host.name/</IISUrl>
        <NTLMAuthentication>False</NTLMAuthentication>
        <UseCustomServer>False</UseCustomServer>
        <CustomServerUrl></CustomServerUrl>
        <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
      </WebProjectProperties>
    </FlavorProperties>
  </VisualStudio>
</ProjectExtensions>
...

Lorsque le projet est configuré de cette manière, je peux accéder au site à partir de http://custom.Host.name/ et VS attache automatiquement au processus de travail IIS lors du débogage.

Lorsque je recharge le projet (en fermant/réouvrant la solution ou en déchargeant/rechargeant dans le menu contextuel du projet), quelque chose d'inattendu se produit. Échec du chargement du projet, (load failed) est affiché à la droite du nom du projet dans l’Explorateur de solutions et une boîte de message s’affiche avec le message suivant (elle apparaît également dans la fenêtre de sortie):

The URL 'http://custom.Host.name/' for Web project 'Some.Asp.Net.Project' 
is configured to use IIS Express as the web server but the URL is currently
configured on the local IIS web server. To open this project, you must use
IIS Manager to remove the bindings using this URL from the local IIS web server.

J'ai essayé de supprimer la configuration du site de projet de IIS Express applicationhost.config fichier, mais cela n’a pas aidé.

Je ne rencontre pas ce problème lorsque le projet de mappage vers IIS Application sous le site par défaut.

La version de VS est Ultimate 2012 Update 3.

83
Igor Antonov

Ouvrir en tant qu'administrateur n'a pas résolu le problème pour moi. Ce qui a réglé le problème pour moi, c’était d’ouvrir les deux les fichiers .csproj Et .csproj.user Et de s’assurer que UseIISExpress était réglé sur false.

Dans mon cas, le fichier .csproj.user Remplaçait le fichier .csproj Même si SaveServerSettingsInUserFile était marqué false.

<Project ToolsVersion="12.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>
201
Jonah

La solution est la suivante: delete *.csproj.user fichier!

47
Cyrus

J'ai défini " SaveServerSettingsInUserFile " sur True et cela a fonctionné pour moi.

<ProjectExtensions>
<VisualStudio>
  <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
    <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>50584</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:50584/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
    </WebProjectProperties>
  </FlavorProperties>
</VisualStudio>

Source: cliquez ici

21
Liakat

lorsque vous utilisez enable the pour IISexpress, l'applicationHost.Config (situé dans% userprofile%\iisexpress\config), vous devez cocher l'option "Appliquer les paramètres du serveur à tous les utilisateurs (stocker dans le fichier de projet)" pour éviter que vos paramètres ne soient écrits. dans votreprojet.csproj.user project settings

faire cela revient à éditer votre fichier project.csproj et à écrire <WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>62242</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:8100/Claims/</IISUrl> <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl> <IISAppRootUrl>http://localhost:8100/Claims/</IISAppRootUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl></CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> Si vous activez IISExpress et que votre fichier applicationHost.config ne contient pas l'entrée liée aux paramètres de votre projet, il vous suffit d'appuyer sur le bouton "Créer un répertoire virtuel" et c'est terminé!

j'espère que cela t'aides

4
zobidafly

Dans mon cas, la suppression du fichier * .csproj.user a bien fonctionné

3
Haddis

J'ai eu le même problème, pour moi tout ce que j'avais à faire était d'ouvrir Visual Studio en tant qu'administrateur et cela a résolu le problème pour moi.

si simple clic droit sur le visual studio 2012 et cliquez sur "Exécuter en tant qu'administrateur". J'espère que cela t'aides

2
Gautam Beri

Pour moi, la combinaison des deux fonctionnait pour Visual Studio 2015 Preview avec Windows 7 64 bits:
1. supprimer le fichier * .csproj.user et
2. <UseIISExpress>false</UseIISExpress> dans le fichier de solution.
Étapes pour l’étape 2: Dans Visual Studio Cliquez avec le bouton droit sur Projet ==> Décharger ===> Modifier la solution.

2
Sunil Yadav

Si votre projet fait partie d'une solution, ouvrez le fichier de solution (.sln) et modifiez la section du projet.

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

Cela a fonctionné pour moi.

1
Mr Nsubuga

J'ai atterri ici lorsqu'un projet configuré pour utiliser IIS ne se charge pas car il n'a pas pu trouver le site Web (myproject.mycompany.local), même si le site Web s'est chargé correctement dans mon navigateur Web.

La solution consistait à vérifier que le lien du site dans IIS 7 avait le nom d'hôte défini sur "myproject.mycompany.local". Pour accéder aux liens de votre site:

  1. Dans IIS 7, sélectionnez le site dans le panneau de navigation de gauche.
  2. Dans le panneau Actions à droite, cliquez sur Liaisons ...

Si votre site ne se charge pas non plus dans le navigateur Web, c'est probablement parce que vous n'avez pas d'entrée pour cela dans votre fichier hosts:

127.0.0.1    myproject.mycompany.local
1
Seth

Cela suffit

Commentez cette ligne dans le fichier de projet x.csproj

<!--<UseIIS>True</UseIIS>-->

x.csproj: erreur: l'URL ' http: // localhost/x ' du projet Web 'x' est configuré pour utiliser IIS Express en tant que serveur Web, mais l'URL est actuellement configurée sur le serveur Web IIS local. Pour ouvrir ce projet, vous devez utiliser IIS Le gestionnaire permet de supprimer les liaisons utilisant cette URL à partir du répertoire local. IIS).

1
samar samar

Ce problème a gâché ma journée au VS 2013 aujourd'hui. J'ai essayé tout ce qui précède, mais je n'ai pas chargé le projet avant de créer un site Web dans IIS et de renseigner cette section dans le fichier .csproj (en particulier l'élément IISUrl):

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>81</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost/SomeProject</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
0
Eric Farr

J'ai eu le même problème, exécuter en tant qu'administrateur ne fonctionnait pas pour moi.

Réglage <UseIIS>True</UseIIS> à false dans le fichier ".csproj" du projet pourrait temporairement charger le projet, mais la valeur revenait à True après le redémarrage ou la fermeture de la solution.

Complétant la réponse de @Cyrus (qui fonctionnait pour moi) pour une réponse plus nette, je me suis davantage concentré sur le fichier csproj.user du projet et j'ai trouvé la source exacte du problème: setting <UseIISExpress>true</UseIISExpress> à false, puis rechargez le projet. fonctionne bien, sans supprimer le fichier csproj.user. le résultat est comme ça:

<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
    <UseIISExpress>false</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <NameOfLastUsedPublishProfile>My Project's Name</NameOfLastUsedPublishProfile>
  </PropertyGroup>
0
Homa Pourmohammadi