Compatibilidad de IIS de tiempo de desarrollo en Visual Studio para ASP.NET Core

Por Sourabh Shirhatti

En este artículo se describe la compatibilidad de Visual Studio con la depuración de aplicaciones ASP.NET Core que se ejecutan con IIS en Windows Server. En este tema se explica cómo habilitar este escenario y configurar un proyecto.

Requisitos previos

  • Visual Studio para Windows.
  • Carga de trabajo de ASP.NET y desarrollo web
  • Carga de trabajo Desarrollo multiplataforma de .NET Core
  • Certificado de seguridad X.509 (para compatibilidad con HTTPS)

Habilitar IIS

  1. En Windows, navegue a Panel de control>Programas>Programas y características>Activar o desactivar las características de Windows (lado izquierdo de la pantalla).
  2. Seleccione la casilla Internet Information Services. Seleccione Aceptar.

La instalación de IIS puede requerir un reinicio del sistema.

Configurar IIS

IIS debe tener un sitio web configurado con lo siguiente:

  • Nombre de host: por lo general, el sitio web predeterminado se usa con un nombre de host de localhost. Sin embargo, sirve cualquier sitio web de IIS válido con un nombre de host único.
  • Enlace de sitio
    • Para las aplicaciones que requieran HTTPS, cree un enlace al puerto 443 con un certificado. Por lo general, se usa el certificado de desarrollo de IIS Express, pero cualquier certificado válido sirve.
    • Para las aplicaciones que usan HTTP, confirme la existencia de un enlace al puerto 80 o cree un enlace a dicho puerto si se trata de un sitio nuevo.
    • Utilice un enlace único para HTTP o HTTPS. No se admite el enlace al mismo tiempo a los puertos HTTP y HTTPS.

Habilitación de la compatibilidad con IIS en tiempo de desarrollo en Visual Studio

  1. Inicie el instalador de Visual Studio.

  2. Seleccione Modificar para la instalación de Visual Studio que se pretende usar para la compatibilidad con IIS en tiempo de desarrollo.

  3. Para la carga de trabajo de Desarrollo de ASP.NET y web , busque e instale el componente Compatibilidad con IIS en tiempo de desarrollo.

    El componente se enumera en la sección Opcional, en Compatibilidad con IIS en tiempo de desarrollo, dentro del panel Detalles de instalación a la derecha de las cargas de trabajo. El componente instala el módulo ASP.NET Core, que es un módulo de IIS nativo necesario para ejecutar aplicaciones de ASP.NET Core con IIS.

Configuración del proyecto

Redireccionamiento de HTTPS

Para un nuevo proyecto que requiere HTTPS, seleccione la casilla Configurar para HTTPS en la ventana Crear una aplicación web ASP.NET Core. Al seleccionar la casilla, se agrega redireccionamiento HTTPS y middleware HSTS a la aplicación cuando esta se crea.

Para un proyecto existente que requiere HTTPS, use el redireccionamiento HTTPS y el middleware HSTS en Startup.Configure. Para más información, consulte Aplicación de HTTPS en ASP.NET Core.

Para un proyecto que usa HTTP, el redireccionamiento HTTPS y el middleware HSTS no se agregan a la aplicación. No se requiere ninguna configuración de la aplicación.

Perfil de inicio de IIS

Cree un nuevo perfil de inicio para agregar la compatibilidad con IIS en tiempo de desarrollo:

  1. Haga clic con el botón derecho en el Explorador de soluciones. Haga clic en Propiedades. Abra la pestaña Depurar.

  2. En Perfil, seleccione el botón Nuevo. Asigne el perfil el nombre "IIS" en la ventana emergente. Seleccione Aceptar para crear el perfil.

  3. En Iniciar, seleccione IIS en la lista.

  4. Active la casilla Iniciar explorador y proporcione la dirección URL del punto de conexión.

    Si la aplicación requiere HTTPS, use un punto de conexión HTTPS (https://). Para HTTP, use un punto de conexión HTTP (http://).

    Proporcione el mismo nombre de host y puerto especificados en la configuración de IIS establecida en usos anteriores, normalmente localhost.

    Proporcione el nombre de la aplicación al final de la dirección URL.

    Por ejemplo, https://localhost/WebApplication1 (HTTPS) o http://localhost/WebApplication1 (HTTP) son direcciones URL de punto de conexión válidas.

  5. En la sección Variables de entorno, seleccione el botón Agregar. Proporcione una variable de entorno con un Nombre de ASPNETCORE_ENVIRONMENT y un Valor de Development.

  6. En el área Configuración del servidor web, defina la Dirección URL de la aplicación con el mismo valor utilizado para la dirección URL de punto de conexión de Iniciar el explorador.

  7. Para la configuración del Modelo de hospedaje de Visual Studio 2019 o posterior, seleccione Predeterminado para usar el modelo de hospedaje utilizado por el proyecto. Si el proyecto establece la propiedad <AspNetCoreHostingModel> en su archivo del proyecto, se usa el valor de la propiedad (InProcess o OutOfProcess). Si la propiedad no existe, se usa el modelo de hospedaje predeterminado de la aplicación, que está en proceso. Si la aplicación requiere una configuración del modelo de hospedaje distinta a la del modelo de hospedaje habitual de la aplicación, defina el Modelo de hospedaje como In Process o Out Of Process, según proceda.

  8. Guarde el perfil.

Si no se usa Visual Studio, agregue manualmente un perfil de inicio al archivo launchSettings.json en la carpeta Propiedades. El siguiente ejemplo configura el perfil para usar el protocolo HTTPS:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Confirme que los puntos de conexión applicationUrl y launchUrl coinciden y use el mismo protocolo que la configuración de enlace de IIS, es decir, HTTP o HTTPS.

Ejecución del proyecto

Ejecute Visual Studio como administrador:

  • Confirme que la lista desplegable de configuración de compilación está configurada como Depurar.
  • Establezca el botón Iniciar depuración en el perfil de IIS y seleccione el botón para iniciar la aplicación.

Visual Studio puede solicitar un reinicio si no se ejecuta como administrador. Si es así, reinicie Visual Studio.

Si se usa un certificado de desarrollo que no es de confianza, el explorador puede pedirle que cree una excepción para un certificado de esta clase.

Nota

La depuración de una configuración de compilación de versión con Solo mi código y las optimizaciones del compilador degradan el rendimiento. Por ejemplo, no se alcanzan los puntos de interrupción.

Recursos adicionales

En este artículo se describe la compatibilidad de Visual Studio con la depuración de aplicaciones ASP.NET Core que se ejecutan con IIS en Windows Server. En este tema se explica cómo habilitar este escenario y configurar un proyecto.

Requisitos previos

  • Visual Studio para Windows.
  • Carga de trabajo de ASP.NET y desarrollo web
  • Carga de trabajo Desarrollo multiplataforma de .NET Core
  • Certificado de seguridad X.509 (para compatibilidad con HTTPS)

Habilitar IIS

  1. En Windows, navegue a Panel de control>Programas>Programas y características>Activar o desactivar las características de Windows (lado izquierdo de la pantalla).
  2. Seleccione la casilla Internet Information Services. Seleccione Aceptar.

La instalación de IIS puede requerir un reinicio del sistema.

Configurar IIS

IIS debe tener un sitio web configurado con lo siguiente:

  • Nombre de host: por lo general, el sitio web predeterminado se usa con un nombre de host de localhost. Sin embargo, sirve cualquier sitio web de IIS válido con un nombre de host único.
  • Enlace de sitio
    • Para las aplicaciones que requieran HTTPS, cree un enlace al puerto 443 con un certificado. Por lo general, se usa el certificado de desarrollo de IIS Express, pero cualquier certificado válido sirve.
    • Para las aplicaciones que usan HTTP, confirme la existencia de un enlace al puerto 80 o cree un enlace a dicho puerto si se trata de un sitio nuevo.
    • Utilice un enlace único para HTTP o HTTPS. No se admite el enlace al mismo tiempo a los puertos HTTP y HTTPS.

Habilitación de la compatibilidad con IIS en tiempo de desarrollo en Visual Studio

  1. Inicie el instalador de Visual Studio.

  2. Seleccione Modificar para la instalación de Visual Studio que se pretende usar para la compatibilidad con IIS en tiempo de desarrollo.

  3. Para la carga de trabajo de Desarrollo de ASP.NET y web , busque e instale el componente Compatibilidad con IIS en tiempo de desarrollo.

    El componente se enumera en la sección Opcional, en Compatibilidad con IIS en tiempo de desarrollo, dentro del panel Detalles de instalación a la derecha de las cargas de trabajo. El componente instala el módulo ASP.NET Core, que es un módulo de IIS nativo necesario para ejecutar aplicaciones de ASP.NET Core con IIS.

Configuración del proyecto

Redireccionamiento de HTTPS

Para un nuevo proyecto que requiere HTTPS, seleccione la casilla Configurar para HTTPS en la ventana Crear una aplicación web ASP.NET Core. Al seleccionar la casilla, se agrega redireccionamiento HTTPS y middleware HSTS a la aplicación cuando esta se crea.

Para un proyecto existente que requiere HTTPS, use el redireccionamiento HTTPS y el middleware HSTS en Startup.Configure. Para más información, consulte Aplicación de HTTPS en ASP.NET Core.

Para un proyecto que usa HTTP, el redireccionamiento HTTPS y el middleware HSTS no se agregan a la aplicación. No se requiere ninguna configuración de la aplicación.

Perfil de inicio de IIS

Cree un nuevo perfil de inicio para agregar la compatibilidad con IIS en tiempo de desarrollo:

  1. Haga clic con el botón derecho en el Explorador de soluciones. Haga clic en Propiedades. Abra la pestaña Depurar.

  2. En Perfil, seleccione el botón Nuevo. Asigne el perfil el nombre "IIS" en la ventana emergente. Seleccione Aceptar para crear el perfil.

  3. En Iniciar, seleccione IIS en la lista.

  4. Active la casilla Iniciar explorador y proporcione la dirección URL del punto de conexión.

    Si la aplicación requiere HTTPS, use un punto de conexión HTTPS (https://). Para HTTP, use un punto de conexión HTTP (http://).

    Proporcione el mismo nombre de host y puerto especificados en la configuración de IIS establecida en usos anteriores, normalmente localhost.

    Proporcione el nombre de la aplicación al final de la dirección URL.

    Por ejemplo, https://localhost/WebApplication1 (HTTPS) o http://localhost/WebApplication1 (HTTP) son direcciones URL de punto de conexión válidas.

  5. En la sección Variables de entorno, seleccione el botón Agregar. Proporcione una variable de entorno con un Nombre de ASPNETCORE_ENVIRONMENT y un Valor de Development.

  6. En el área Configuración del servidor web, defina la Dirección URL de la aplicación con el mismo valor utilizado para la dirección URL de punto de conexión de Iniciar el explorador.

  7. Para la configuración del Modelo de hospedaje de Visual Studio 2019 o posterior, seleccione Predeterminado para usar el modelo de hospedaje utilizado por el proyecto. Si el proyecto establece la propiedad <AspNetCoreHostingModel> en su archivo del proyecto, se usa el valor de la propiedad (InProcess o OutOfProcess). Si la propiedad no existe, se usa el modelo de hospedaje predeterminado de la aplicación, que está fuera de proceso. Si la aplicación requiere una configuración del modelo de hospedaje distinta a la del modelo de hospedaje habitual de la aplicación, defina el Modelo de hospedaje como In Process o Out Of Process, según proceda.

  8. Guarde el perfil.

Si no se usa Visual Studio, agregue manualmente un perfil de inicio al archivo launchSettings.json en la carpeta Propiedades. El siguiente ejemplo configura el perfil para usar el protocolo HTTPS:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
      "applicationUrl": "https://localhost/WebApplication1",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "launchUrl": "https://localhost/WebApplication1",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Confirme que los puntos de conexión applicationUrl y launchUrl coinciden y use el mismo protocolo que la configuración de enlace de IIS, es decir, HTTP o HTTPS.

Ejecución del proyecto

Ejecute Visual Studio como administrador:

  • Confirme que la lista desplegable de configuración de compilación está configurada como Depurar.
  • Establezca el botón Iniciar depuración en el perfil de IIS y seleccione el botón para iniciar la aplicación.

Visual Studio puede solicitar un reinicio si no se ejecuta como administrador. Si es así, reinicie Visual Studio.

Si se usa un certificado de desarrollo que no es de confianza, el explorador puede pedirle que cree una excepción para un certificado de esta clase.

Nota

La depuración de una configuración de compilación de versión con Solo mi código y las optimizaciones del compilador degradan el rendimiento. Por ejemplo, no se alcanzan los puntos de interrupción.

Recursos adicionales