VS 2012 no puede cargar el proyecto que usa IIS con un host de enlace personalizado; cree que está usando IIS Express

85

Tengo un proyecto ASP.NET que usa IIS. El sitio de IIS está configurado para utilizar un nombre de host de enlace personalizado. El archivo de proyecto contiene las siguientes configuraciones:

...
<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>
...

Cuando el proyecto está configurado de tal manera, puedo acceder al sitio desde http://custom.host.name/y VS se adjunta automáticamente al proceso de trabajo de IIS al depurar.

Cuando recargo el proyecto (ya sea cerrando / reabriendo la solución o descargando / recargando en el menú contextual del proyecto), sucede algo inesperado. El proyecto no se carga, (load failed)se muestra a la derecha del nombre del proyecto en el explorador de soluciones y el cuadro de mensaje se muestra con el siguiente mensaje (también se muestra en la ventana Salida):

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.

Intenté eliminar la configuración del sitio del proyecto del applicationhost.configarchivo IIS Express , pero no ayudó.

No encuentro este problema al mapear el proyecto a la aplicación IIS en el sitio predeterminado.

La versión VS es Ultimate 2012 Update 3.

Igor Antonov
fuente
3
Sí, tengo el mismo problema con VS2013 desde que usé IIS Express una vez con este proyecto ... ¡Realmente molesto!
kipusoep
3
Intente editar los archivos csproj o csproj.user y configúrelos UseIISExpressen falso. stackoverflow.com/a/19103452/138938
Jon Crowell
2
@HeadofCatering, acabo de tener este problema, pero UseIISExpress ya estaba configurado como falso en el archivo .csproj del proyecto. Sin embargo, la simple búsqueda de IIS me llevó a encontrar la etiqueta XML "<UseIIS> True </UseIIS>" dentro del archivo csproj (en <ProjectExtensions><VisualStudio><FlavorProperties> <WebProjectProperties>) y simplemente configurándolo como "< UseIIS> True </UseIIS> "hizo que Visual Studio pueda cargar el proyecto nuevamente. ¡Ojalá esto no haya tenido otros efectos no deseados!
mgrandi
2
@mgrandi Cuidado con el error tipográfico; establecer <UseIIS>True</UseIIS>a <UseIIS>False</UseIIS>hizo el truco para mí también. ¡Gracias por la sugerencia!
Dion V.

Respuestas:

205

Abrirme como administrador no solucionó el problema. Lo fija para mí fue la apertura tanto el .csprojy .csproj.userarchivos y asegurar que ambos habían UseIISExpressestablecido a false.

En mi caso, el .csproj.userarchivo anulaba el .csprojarchivo a pesar de que SaveServerSettingsInUserFileestaba marcado false.

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>
Jonás
fuente
48
Eliminar csproj.user finalmente resolvió mi problema. ¡Gracias!
Bryan Sumter
Muchas gracias, me estaba rompiendo la cabeza mirando la configuración de csproj. Todo se veía bien. Después de eliminar el archivo csproj.user, comenzó a cargar el proyecto sin ninguna queja ++ 1
Esen
47

La solución es: ¡eliminar *.csproj.userarchivo!

Ciro
fuente
PERO después de eliminar *.csproj.user, no se puede editar*.csproj
Shuhratjan Nizamov
21

He establecido " SaveServerSettingsInUserFile " como True y funcionó para mí.

<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>

Fuente: haga clic aquí

Liakat Ali Mondol
fuente
4

cuando usa habilitar el uso de IISexpress, el applicationHost.Config (ubicado en% userprofile% \ iisexpress \ config), debe marcar la opción "Aplicar la configuración del servidor a todos los usuarios (almacenar en el archivo del proyecto)" para evitar que se escriba la configuración en yourProject.csproj.user configuración del proyecto

hacer esto es lo mismo que editar su archivo project.csproj y escribir <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 habilita IISExpress y su archivo applicationHost.config no contiene la entrada relacionada con la configuración de su proyecto, solo tiene que presionar el botón "Crear directorio virtual" y listo !

espero que esto ayude

zobidafly
fuente
¿Qué versión de Visual Studio es esta? No tengo esta opción en VS Pro 2013
Matt R
@Matt R: Obtuve VS2012 pro, así que supongo que sería lo mismo para tu versión. en el explorador de soluciones, seleccione su proyecto de aplicación web, haga clic con el botón derecho y seleccione "propiedades"; luego aparecerá una ventana con pestañas, seleccione la pestaña "Web" y debería ver la captura de pantalla que adjunto en la respuesta ... y perdón por el retraso ¡responder!
zobidafly
3

En mi caso, eliminar el archivo * .csproj.user funcionó bien

Haddis
fuente
2

Tuve el mismo problema, para mí todo lo que tenía que hacer era abrir Visual Studio como administrador y esto me resolvió el problema.

tan simple clic derecho en Visual Studio 2012 y haga clic en "Ejecutar como administrador". espero que esto ayude

Gautam Beri
fuente
2

Para mí, la combinación de ambos funcionó para Visual Studio 2015 Preview con Windows 7 de 64 bits:
1. elimine el archivo * .csproj.user y
2. <UseIISExpress>false</UseIISExpress>en el archivo de solución.
Pasos para el Paso 2: En Visual Studio, haga clic con el botón derecho en Proyecto ==> Descargar ===> Editar la solución

Sunil Yadav
fuente
1

Esto es suficiente

Comente esta línea en el archivo de proyecto x.csproj

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

x.csproj: error: la URL ' http: // localhost / x ' para el proyecto web 'x' está configurada para usar IIS Express como servidor web, pero la URL está configurada actualmente en el servidor web IIS local. Para abrir este proyecto, debe usar el Administrador de IIS para eliminar los enlaces que usan esta URL del servidor web IIS local.

samar samar
fuente
1

Aterricé aquí cuando un proyecto, configurado para usar IIS, no se cargaba porque no podía encontrar el sitio web (myproject.mycompany.local), a pesar de que el sitio web se cargó bien en mi navegador web.

La solución fue asegurarse de que el enlace del sitio en IIS 7 tuviera el nombre de host establecido en "myproject.mycompany.local". Para acceder a los enlaces de su sitio:

  1. En IIS 7, seleccione el sitio en el panel de navegación izquierdo.
  2. En el panel Acciones de la derecha, haga clic en Enlaces ...

Si su sitio tampoco se carga en el navegador web, probablemente sea porque no tiene una entrada para él en su archivo de hosts:

127.0.0.1    myproject.mycompany.local
Seth
fuente
1

Si su proyecto es parte de una solución, abra el archivo de la solución (.sln) y edite la sección del proyecto.

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

Funcionó para mí.

Sr. Nsubuga
fuente
0

Este problema estaba arruinando mi día en VS 2013 hoy. Intenté todo lo anterior, pero no logré cargar el proyecto hasta que creé un sitio web en IIS y completé esta sección en el archivo .csproj (especialmente el elemento 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>

Eric Farr
fuente
esto tiene mucho sentido. Aunque no pude hacer que eso funcionara.
Winnemucca
0

Tuve el mismo problema, ejecutar como administrador no funcionó para mí.

Establecer <UseIIS>True</UseIIS>como falso en el archivo ".csproj" del proyecto temporalmente podría cargar el proyecto, pero el valor volvía a Verdadero después de reiniciar o cerrar la solución.

Completando la respuesta de @Cyrus (que funcionó para mí) para una respuesta más ordenada, me concentré más en el archivo csproj.user del proyecto y encontré la fuente exacta del problema: configuré <UseIISExpress>true</UseIISExpress>en falso, luego recargué el proyecto. funcionando bien, sin eliminar el archivo csproj.user. el resultado es así:

<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>
Homa Pourmohammadi
fuente
Debo mencionar que, en mi caso, cada vez que abro Visual Studio normalmente (no como administrador) la configuración de IIS vuelve y tengo que hacer las tareas nuevamente.
Homa Pourmohammadi