Depuración de aplicaciones de ASP.NET o ASP.NET Core en Visual Studio

Puede depurar aplicaciones de ASP.NET o ASP.NET Core en Visual Studio. El proceso difiere entre ASP.NET y ASP.NET Core, y si se ejecuta en IIS Express o en un servidor de IIS local.

Nota

Los siguientes pasos y valores solo se aplican a la depuración de aplicaciones en un servidor local. La depuración de aplicaciones en un servidor IIS remoto usa Asociar al proceso y omite esta configuración. Para obtener más información e instrucciones para la depuración remota de aplicaciones de ASP.NET en IIS, vea Depuración remota de ASP.NET en un equipo IIS o Depuración remota de ASP.NET Core en un equipo IIS remoto.

Los servidores Kestrel e IIS Express integrados se incluyen con Visual Studio. Kestrel es el servidor de depuración predeterminado para proyectos de ASP.NET Core y está preconfigurado. IIS Express es el servidor de depuración predeterminado para ASP.NET.

El servidor de IIS Express integrado se incluye con Visual Studio. IIS Express es el servidor de depuración predeterminado para los proyectos de ASP.NET y ASP.NET Core, y está preconfigurado. Es la manera más fácil de depurar aplicaciones, y es ideal para realizar la depuración y las pruebas iniciales.

Para ASP.NET Core, también puede depurar en el servidor web de Kestrel.

Requisitos previos para el servidor IIS local

También puede depurar una aplicación de ASP.NET o ASP.NET Core en un servidor IIS local (versión 8.0 o posteriores) que esté configurado para ejecutar la aplicación. Para realizar la depuración en IIS local, debe cumplir los siguientes requisitos:

  • Si no está instalado, instale ASP.NET y la carga de trabajo de desarrollo web. Vuelva a ejecutar el Instalador de Visual Studio, seleccione Modificar y agregue esta carga de trabajo.

  • Ejecute Visual Studio como administrador.

  • Instale y configure correctamente IIS con las versiones adecuadas de ASP.NET o ASP.NET Core. Para obtener más información sobre el uso de IIS con ASP.NET Core, vea Hospedaje de ASP.NET Core en Windows con IIS. Para ASP.NET, consulte Instalar IIS y los módulos de ASP.NET.

  • Asegúrese de que la aplicación se ejecuta en IIS sin errores.

Depuración de aplicaciones ASP.NET Core

Puede haber un perfil predeterminado basado en https o uno basado en el nombre del proyecto, están configurados para el servidor web de Kestrel. Si realiza la depuración en IIS local en su lugar, asegúrese de que cumple los requisitos previos para la depuración de IIS local.

  1. Seleccione el proyecto de ASP.NET Core en el Explorador de soluciones de Visual Studio y haga clic en el icono Propiedades, presione Alt+Entrar o haga clic con el botón derecho y seleccione Propiedades.

  2. Seleccione la pestaña Depurar y haga clic en el vínculo para abrir la Interfaz de usuario Abrir perfiles de inicio de depuración.

    La interfaz de usuario presentada corresponde a la configuración del archivo launchSettings.json del proyecto. Para obtener más información sobre este archivo, consulte la sección Desarrollo y launchSettings.json en Usar varios entornos en ASP.NET Core.

  3. Seleccione el perfil que se configurará para la depuración.

    • En Kestrel, seleccione el perfil https o el perfil con el nombre del proyecto.
    • En IIS Express, seleccione IIS Express de la lista desplegable.
    • Para IIS local, seleccione Nuevo y cree un nuevo perfil de IIS.
  4. Asegúrese de que Iniciar explorador está seleccionado.

  5. Asegúrese de que la dirección URL, la dirección URL de la aplicación y la dirección URL de SSL de la aplicación sean correctas.

    Url especifica la ubicación de la dirección URL del host para .NET o .NET Core. Para un perfil que tenga el mismo nombre que el proyecto (es decir, la propiedad commandName en launchSettings.json es Project), el servidor Kestrel escucha el puerto especificado. Para un perfil de IIS, suele ser el mismo valor que la dirección URL de la aplicación. Para obtener más información, vea la sección Perfil de inicio de IIS en Configurar el proyecto.

    La dirección URL de la aplicación y la dirección URL de SSL de la aplicación especifican las direcciones URL de la aplicación. Para un perfil que tenga el mismo nombre que el proyecto, esta propiedad especifica las direcciones URL del servidor Kestrel, normalmente https://localhost:5001 y http://localhost:5000. Para IIS Express, la dirección URL de SSL de la aplicación suele ser http://localhost:44334.

  6. En Variables de entorno, asegúrese de que ASPNETCORE_ENVIRONMENT esté presente con un valor de Desarrollo. Si no es así, agregue la variable.

    Configuración del depurador de ASP.NET Core

    Para obtener más información sobre cómo usar variables de entorno, consulte Entornos.

  7. Para depurar la aplicación, en el proyecto, establezca puntos de interrupción en algunas secciones del código. En barra de herramientas de Visual Studio, asegúrese de que la configuración se haya establecido en Depurar.

  8. Para iniciar la depuración, seleccione el nombre del perfil en la barra de herramientas, como https, IIS Express o <nombre de perfil de IIS> en la barra de herramientas, seleccione Iniciar depuración en el menú Depurar, o presione F5. El depurador se detiene en los puntos de interrupción. Si el depurador no puede alcanzar los puntos de interrupción, vea Solución de problemas de depuración.

Depuración de aplicaciones ASP.NET Core

IIS Express es el valor predeterminado y está preconfigurado. Si realiza la depuración en IIS local, asegúrese de que cumple los requisitos para la depuración de IIS local.

  1. Seleccione el proyecto de ASP.NET Core en el Explorador de soluciones de Visual Studio y haga clic en el icono Propiedades, presione Alt+Entrar o haga clic con el botón derecho y seleccione Propiedades.

  2. Seleccione la pestaña Depurar.

  3. En el panel Propiedades, junto a Perfil,

    • En IIS Express, seleccione IIS Express de la lista desplegable.
    • En el caso de IIS local, seleccione el nombre de la aplicación en la lista desplegable o seleccione Nuevo, cree un nuevo nombre de perfil y seleccione Aceptar.
  4. Junto a Inicio, seleccione IIS Express o IIS en la lista desplegable.

  5. Asegúrese de que Iniciar explorador está seleccionado.

  6. En Variables de entorno, asegúrese de que ASPNETCORE_ENVIRONMENT esté presente con un valor de Desarrollo. Si no es así, seleccione Agregar y agréguelo.

    Configuración del depurador de ASP.NET Core

  7. Use Archivo>Guardar elementos seleccionados o presione Ctrl+S para guardar los cambios.

  8. Para depurar la aplicación, en el proyecto, establezca puntos de interrupción en algunas secciones del código. En la barra de herramientas de Visual Studio, asegúrese de que la configuración esté establecida en Depurar y de que IIS Express o el nuevo nombre del perfil de IIS aparezcan en el campo emulador.

  9. Para iniciar la depuración, seleccione IIS Express o <nombre del perfil de IIS> en la barra de herramientas, seleccione Iniciar depuración en el menú Depurar o presione F5. El depurador se detiene en los puntos de interrupción. Si el depurador no puede alcanzar los puntos de interrupción, vea Solución de problemas de depuración.

Depuración de aplicaciones de ASP.NET

IIS Express es el valor predeterminado y está preconfigurado. Si realiza la depuración en IIS local, asegúrese de que cumple los requisitos para la depuración de IIS local.

  1. Seleccione el proyecto de ASP.NET en el Explorador de soluciones de Visual Studio y haga clic en el icono Propiedades, presione Alt+Entrar o haga clic con el botón derecho y seleccione Propiedades.

  2. Seleccione la pestaña Web.

    Si no ve la pestaña Web, consulte Depurar aplicaciones de ASP.NET Core. La pestaña Web solo aparece para ASP.NET Framework.

  3. En el panel Propiedades, en Servidores,

    • En Kestrel, seleccione https en la lista desplegable.
    • En IIS Express, seleccione IIS Express de la lista desplegable.
    • Para IIS local,
      1. Seleccione IIS local en la lista desplegable.
      2. Junto al campo Dirección URL del proyecto, seleccione Crear directorio virtual, si aún no ha configurado la aplicación en IIS.
  4. En Depuradores, seleccione ASP.NET.

    Captura de pantalla donde aparece la configuración del depurador ASP.NET.

  5. Elija Archivo>Guardar los elementos seleccionados (o presione Ctrl+S) para guardar los cambios.

  6. Para depurar la aplicación, en el proyecto, establezca puntos de interrupción en algunas secciones del código. En la barra de herramientas de Visual Studio, asegúrese de que la configuración esté establecida en Depurar y el explorador que quiera aparezca en IIS Express (<Nombre del explorador>) o IIS local (<Nombre del explorador>) en el campo emulador.

  7. Para iniciar la depuración, seleccione IIS Express (<Nombre del explorador>) o IIS local (<Nombre del explorador>) en la barra de herramientas, seleccione Iniciar depuración en el menú Depurar o presione F5. El depurador se detiene en los puntos de interrupción. Si el depurador no puede alcanzar los puntos de interrupción, vea Solución de problemas de depuración.

Solución de problemas de depuración

Si la depuración de IIS local no puede progresar hasta el punto de interrupción, siga estos pasos para solucionar el problema.

  1. Inicie la aplicación web desde IIS y asegúrese de que se ejecuta correctamente. Deje la aplicación web en ejecución.

  2. En Visual Studio, seleccione Depurar > Asociar al proceso o presione Ctrl+Alt+P y conéctese al proceso de ASP.NET o ASP.NET Core (normalmente, w3wp.exe o dotnet.exe). Para obtener más información, consulte Asociar al proceso y Cómo: Buscar el nombre de un proceso de ASP.NET.

Si puede conectarse y alcanzar el punto de interrupción mediante Asociar al proceso, pero no mediante Depurar>Iniciar depuración o F5, es probable que un valor de configuración sea incorrecto en las propiedades del proyecto. Si usa un archivo HOSTS, asegúrese de que también está configurado correctamente.

Configuración de la depuración en el archivo web.config

Los proyectos de ASP.NET tienen archivos web.config de forma predeterminada, que contienen la configuración de la aplicación y la información de inicio, incluida la configuración de depuración. Los archivos web.config deben estar configurados correctamente para la depuración. La configuración Propiedades de las secciones anteriores actualizan los archivos web.config, pero también puedes configurarlos de forma manual.

Nota:

Los proyectos de ASP.NET Core no tienen inicialmente archivos web.config, pero usan archivos appsettings.json y launchSettings.json para la configuración de la aplicación y la información de inicio. La implementación de la aplicación crea un archivo web.config o archivos en el proyecto, pero por lo general no contiene información de depuración.

Sugerencia

El proceso de implementación puede actualizar la configuración de web.config, por lo que, antes de intentar realizar la depuración, no olvide comprobar que el archivo web.config esté configurado para la depuración.

Para configurar manualmente un archivo web.config para la depuración:

  1. En Visual Studio, abra el archivo web.config del proyecto de ASP.NET.

  2. Web.config es un archivo XML, por lo que contiene secciones anidadas marcadas por etiquetas. Localice la sección configuration/system.web/compilation. (Si el elemento compilation no existe, cree uno).

  3. Asegúrese de que el atributo debug del elemento compilation se haya establecido en true. (Si el elemento compilation no contiene un atributo debug, agréguelo y establézcalo en true).

    Si usa IIS local en lugar del servidor de IIS Express predeterminado, asegúrese de que el valor del atributo targetFramework del elemento compilation coincida con el marco del servidor IIS.

    El elemento compilation del archivo web.config debe ser similar al del ejemplo que aparece a continuación:

    Nota:

    Este ejemplo es un archivo web.config parcial. Normalmente hay secciones XML adicionales en los elementos configuration y system.web, y el elemento compilation también puede contener otros atributos y elementos.

    <configuration>
       ...
       <system.web>
           <compilation  debug="true"  targetFramework="4.6.1" ... >
              ...
           </compilation>
       </system.web>
    </configuration>
    

ASP.NET detecta automáticamente los cambios realizados en los archivos web.config y aplica la nueva configuración. No es preciso reiniciar el equipo ni el servidor IIS para que los cambios surtan efecto.

Un sitio web puede contener varios directorios y subdirectorios virtuales, con archivos web.config en cada uno de ellos. Las aplicaciones ASP.NET heredan los valores de los archivos web.config que se encuentran en niveles superiores de la ruta de acceso de la dirección URL. La configuración jerárquica del archivo web.config se aplica a todas las aplicaciones ASP.NET que se encuentran debajo de ellas en la jerarquía. Al establecer una configuración diferente en un archivo web.config inferior en la jerarquía, se invalida la configuración del archivo superior.

Por ejemplo, si especifica debug="true" en www.microsoft.com/aaa/web.config, cualquier aplicación en la carpeta aaa o en cualquier subcarpeta de aaa hereda ese valor, excepto si una de esas aplicaciones reemplaza la configuración por su propio archivo web.config.

Importante

El modo de depuración reduce en gran medida el rendimiento de la aplicación. Al implementar una aplicación de producción o realizar medidas de rendimiento, establezca debug="false" en el archivo web.config y especifique una compilación de versión.