85 votes

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

J'ai un projet ASP.NET qui utilise IIS. Le site IIS est configuré pour utiliser un nom d'hôte 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 s'attache automatiquement au processus de travail IIS lors du débogage.

Lorsque je recharge le projet (soit en fermant/réouvrant la solution, soit en déchargeant/rechargeant dans le menu contextuel du projet), quelque chose d'inattendu se produit. Le projet ne se charge pas, (load failed) s'affiche à droite du nom du projet dans l'explorateur de solutions et une boîte de message s'affiche avec le message suivant (il s'affiche également dans la fenêtre Output) :

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 du projet dans IIS Express applicationhost.config mais cela n'a pas aidé.

Je ne rencontre pas ce problème lorsque j'associe le projet à l'application IIS sous le site par défaut.

La version du VS est Ultimate 2012 Update 3.

207voto

Jonah Points 455

L'ouverture en tant qu'administrateur n'a pas résolu le problème pour moi. Ce qui l'a résolu pour moi, c'est d'ouvrir à la fois les .csproj y .csproj.user et de s'assurer qu'ils ont tous deux UseIISExpress fixé à false .

Dans mon cas, le .csproj.user remplaçait le fichier .csproj même si le fichier SaveServerSettingsInUserFile a été marquée false .

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

48voto

Cyrus Points 91

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

21voto

Liakat Points 387

J'ai mis " SaveServerSettingsInUserFile (Enregistrer les paramètres du serveur dans le fichier de l'utilisateur) " comme 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

4voto

zobidafly Points 33

Lorsque vous activez l'utilisation de IISexpress, le fichier 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 du projet)" pour éviter que vos paramètres ne soient écrits dans votreProjet.csproj.user. project settings

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 relative aux paramètres de votre projet, il vous suffit d'appuyer sur le bouton "Créer un répertoire virtuel" et le tour est joué !

J'espère que cela vous aidera

3voto

Haddis Points 31

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X