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.


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>

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!


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í


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


¿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


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


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


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.


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

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


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>


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>

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.