Depurar aplicaciones de ASP.NET en Visual StudioDebug ASP.NET Applications in Visual Studio

Puede depurar aplicaciones ASP.NET desde Visual Studio.You can debug ASP.NET applications from Visual Studio.

RequisitosRequirements

Para seguir las instrucciones de este tema, debe:To follow the instructions in this topic, you need:

  • IIS Express, que se incluye de forma predeterminada en Visual Studio 2012 y versiones posterioresIIS Express, which is included by default in Visual Studio 2012 and later

    O bien-or-

  • Una variable local IIS web server (versión 8.0 o posterior) que está configurado correctamente y se puede ejecutar la aplicación de ASP.NET sin errores.A local IIS web server (version 8.0 or higher) that is configured correctly and can run the ASP.NET application without errors.

Si el servidor es remoto, debe ejecutar el depurador remoto en el equipo remoto.If the server is remote, the remote debugger must be running on the remote computer. Para depurar en un servidor IIS remoto, consulte ASP.NET de depuración remota en un equipo con IIS.To debug on a remote IIS server, see Remote Debug ASP.NET on an IIS Computer.

Configurar opciones de depuraciónConfigure debug settings

Habilitar la depuración ASP.NET en las propiedades del proyectoEnable ASP.NET debugging in the project properties

  1. Abra el proyecto ASP.NET en Visual Studio.Open your ASP.NET project in Visual Studio.

  2. Haga clic en el proyecto en el Explorador de soluciones, elija propiedadesy, a continuación, haga clic en el Web ficha.Right-click the project in Solution Explorer, choose Properties, and then click the Web tab.

    Para algunos tipos de proyecto, seleccione Propiedades > depurar en su lugar.For some project types, select Properties > Debug instead. En un proyecto de Web Forms ASP.NET, haga clic en el proyecto y seleccione páginas de propiedades > Opciones de inicio.For a Web Forms ASP.NET project, right-click the project and select Property Pages > Start Options.

  3. En Depuradores, active la casilla ASP.NET .Under Debuggers, select the ASP.NET check box.

    Configuración del depuradorDebugger settings

Nota

Si crea un nuevo proyecto ASP.NET (archivo > Nuevo proyecto), la configuración de depuración ya está configurada correctamente.If you create a new ASP.NET project (File > New Project), the debug settings are already configured correctly.

Habilitar la depuración en el archivo web.configEnable debugging in the web.config file

Para depurar una aplicación web, archivo web.config de la aplicación debe configurarse correctamente.To debug a web app, application's web.config file must be configured correctly. Un archivo web.config es necesario si hospeda la aplicación en IIS o IIS Express.A web.config file is required if you host the app on IIS or IIS Express.

Principales de ASP.NET, el archivo web.config se crea automáticamente cuando se implemente la aplicación (si todavía no está presente).For ASP.NET Core, the web.config file is created automatically when the app is deployed (if it is not already present).

Sugerencia

El proceso de implementación puede actualizar la configuración de web.config.Your deployment process may update the web.config settings. Por tanto, antes de intentar depurar, compruebe la configuración de web.config en el servidor.So before trying to debug, verify the web.config setting on the server.

  1. En Visual Studio, abra el archivo web.config del proyecto.In Visual Studio, open the project's web.config file.

    Nota

    No se puede tener acceso al archivo web.config remotamente mediante un explorador Web.You cannot access the web.config file remotely by using a Web browser. Por motivos de seguridad, ASP.NETASP.NET configura Microsoft IIS para impedir el acceso directo del explorador a los archivos Web.config.For security reasons, ASP.NETASP.NET configures Microsoft IIS to help prevent direct browser access to Web.config files. Si se intenta tener acceso a un archivo de configuración mediante un explorador, obtendrá un error de acceso HTTP 403 (prohibido).If you try to access a configuration file by using a browser, you get an HTTP access error 403 (forbidden).

  2. Busque el elemento configuration/system.web/compilation .Locate the configuration/system.web/compilation element. Si el elemento compilation no existe, créelo.If the compilation element does not exist, create it.

    Web.config es un archivo XML, por lo que contiene secciones anidadas marcadas por etiquetas.Web.config is an XML file, and so contains nested sections marked by tags.

  3. Si el elemento compilation no tiene un atributo debug , agregue el atributo al elemento.If the compilation element does not contain a debug attribute, add the attribute to the element.

  4. Asegúrese de que el valor del atributo debug está establecido en true.Make sure the debug attribute value is set to true.

El archivo web.config debe ser similar al ejemplo siguiente:The web.config file should look like the following example:

Nota

En este ejemplo es un archivo web.config parcial.This example is a partial web.config file. Secciones XML adicionales son normalmente presentes entre los elementos configuration y system.web.Additional XML sections are typically present between the configuration and system.web elements. El elemento compilation puede contener también otros atributos y elementos.The compilation element might also contain other attributes and elements.

EjemploExample

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

Si está utilizando un servidor externo en lugar del servidor de IIS Express de forma predeterminada, también debe asegurarse que la targetFramework valor de atributo coincide con la configuración en el servidor.If you are using an external server instead of the default IIS Express server, you must also make sure that the targetFramework attribute value matches the configuration on the server.

Importante

Para obtener el mejor rendimiento, establezca una aplicación de producción en debug=false y especificar una versión de lanzamiento al compilar y publicar la aplicación.For best performance, set a production app to debug=false and specify a Release build when you build and publish the app.

Configurar el proyecto para el servidorConfigure project settings for the server

Para depurar en un servidor web local, establecer propiedades del proyecto.For debugging on a local web server, set project properties. Para depurar en un servidor remoto, siga las instrucciones más completas se describe en ASP.NET de depuración remota en IIS en su lugar.For debugging on a remote server, follow the more comprehensive instructions described in Remote Debugging ASP.NET on IIS instead.

  1. En el Web ficha del proyecto de propiedades, seleccione IIS Express o servidor externo en el Server configuración.In the Web tab of the project properties, select either IIS Express or External Server under the Server settings. (Para algunos tipos de proyecto, estos valores aparecen en la depurar pestaña en su lugar.)(For some project types, these settings appear under the Debug tab instead.)

    Configuración del servidorServer settings

    IIS Express es el servidor predeterminado para ASP.NET y normalmente no requiere ninguna configuración especial.IIS Express is the default server for ASP.NET and does not typically require any special configuration. Se trata de la manera más fácil de depurar una aplicación ASP.NET.This is the easiest way to debug an ASP.NET application.

    Para un proyecto Web Forms ASP.NET, haga clic en el proyecto, elija páginas de propiedades > Opciones de inicioy seleccione usar servidor Web de manera predeterminada o usar servidor personalizado () en lugar de servidor externo).For a Web Forms ASP.NET project, right-click the project, choose Property Pages > Start Options, and select either Use default Web server or Use custom server (instead of External Server).

    Configuración del servidor para la aplicación de formularios Web FormsServer settings for Web Forms app

  2. Si elige un servidor externo (personalizado), escriba la dirección URL correcta en el dirección URL del proyecto (o URL Base) campo.If you choose an external (custom) server, enter the correct URL in the Project URL (or Base URL) field.

    Si el servidor externo es IIS local, IIS debe estar instalado y configurado correctamente.If the external server is local IIS, IIS must be installed and configured correctly. Por ejemplo, la versión correcta de ASP.NET debe configurarse en IIS.For example, the correct version of ASP.NET must be configured in IIS. Para obtener más información, consulte IIS 8.0 utilizando ASP.NET 3.5 y 4.5 de ASP.NET.For more information, see IIS 8.0 Using ASP.NET 3.5 and ASP.NET 4.5. Si desea probar la implementación, así como la depuración, vea implementación para probar.If you want to test deployment as well as debugging, see Deploying to test.

    Si el servidor externo es remoto, adjuntar al proceso en su lugar, y no se utiliza esta configuración de proyecto para la depuración.If the external server is remote, you attach to the process instead, and these project settings are not used for debugging.

(Servidor web IIS local) Configurar IIS(Local IIS web server) Configure IIS

Para IIS Express, no es necesario configurar el servidor web (omitir esta sección).For IIS Express, you don't need to configure the web server (skip this section). IIS Express se recomienda para las pruebas iniciales.IIS Express is recommended for initial testing.

Si está utilizando el servidor web IIS local, siga estos pasos.If you are using local IIS web server, follow these steps.

  1. Asegúrese de que IIS está instalado correctamente.Make sure that IIS is installed correctly. Para obtener más información, consulte IIS 8.0 utilizando ASP.NET 3.5 y 4.5 de ASP.NET.For more information, see IIS 8.0 Using ASP.NET 3.5 and ASP.NET 4.5.

    • Asegúrese de que instale la versión correcta de ASP.NET en el servidor.Make sure that you install the correct version of ASP.NET on the server. Utilice el instalador de plataforma Web (WPI) para instalar ASP.NET 4.5 (en el nodo del servidor en Windows Server 2012 R2, elija obtener nuevos componentes de plataforma de Web y, a continuación, busque ASP.NET).Use the Web Platform Installer (WebPI) to install ASP.NET 4.5 (from the Server node in Windows Server 2012 R2, choose Get New Web Platform Components and then search for ASP.NET). Para instalar ASP.NET Core, consulte publicar en IIS.To install ASP.NET Core, see Publishing to IIS.

      Nota

      Si está utilizando Windows Server 2008 R2, instale ASP.NET 4 en lugar de utilizar este comando:If you are using Windows Server 2008 R2, install ASP.NET 4 instead using this command:

      C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe - irC:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

  2. Abra la de Internet Information Services (IIS) Manager.Open the Internet Information Services (IIS) Manager. (En el panel izquierdo del administrador del servidor, seleccione IIS.(In the left pane of Server Manager, select IIS. Haga clic en el servidor y seleccione Internet Information Services (IIS) Manager.)Right-click the server and select Internet Information Services (IIS) Manager.)

  3. En conexiones en el panel izquierdo, vaya a sitios.Under Connections in the left pane, go to Sites.

  4. Haga clic con el botón secundario en el nodo Sitio web predeterminado y seleccione Agregar aplicación.Right-click the Default Web Site node and select Add Application.

  5. Establecer el Alias campo MyASPApp, acepte el valor predeterminado de grupo de aplicaciones (DefaultAppPool) y establezca el ruta de acceso física a C:\inetpub\myNewFolder (crear una nueva carpeta de la aplicación).Set the Alias field to MyASPApp, accept the default Application Pool (DefaultAppPool), and set the Physical path to C:\inetpub\myNewFolder (create a new folder for the app).

  6. En conexiones, seleccione grupos de aplicaciones.Under Connections, select Application Pools. Abra DefaultAppPool y establezca el campo de grupo de aplicaciones en el valor correcto para la aplicación (use ASP.NET 4 para ASP.NET 4.5.Open DefaultAppPool and set the Application pool field to the value that is correct for your application (use ASP.NET 4 for ASP.NET 4.5. Usar código No administrado principales de ASP.NET).Use No Managed Code for ASP.NET Core).

(Servidor web IIS local) Implementar la aplicación(Local IIS web server) Deploy the app

Para IIS Express, la aplicación web se implementa automáticamente al iniciar la depuración (omitir esta sección).For IIS Express, the web app is deployed automatically when you start debugging (skip this section).

Si está utilizando el servidor web IIS local, siga estos pasos.If you are using local IIS web server, follow these steps. Hay diferentes maneras de publicar la aplicación en IIS.There are different ways to publish your app to IIS. En estos pasos, se muestra cómo crear y utilizar un perfil de publicación para que se pueden implementar mediante el sistema de archivos.In these steps, we show how to create and use a Publish profile so that you can deploy using the file system.

  1. Reinicie Visual Studio como administrador.Restart Visual Studio as an Administrator.

    Para implementar con este método, necesita privilegios de administrador.To deploy using this method, you need Administrator privileges.

  2. En Visual Studio, haga clic en el proyecto y elija publicar (para los formularios Web Forms, use Publicar Web App).In Visual Studio, right-click the project and choose Publish (for Web Forms, use Publish Web App).

  3. Elija IIS, FTP, etc. y haga clic en publicar.Choose IIS, FTP, etc. and click Publish.

    Publicar en IISPublish to IIS

    Para una aplicación de formularios Web Forms, elija personalizado en el cuadro de diálogo Publicar, escriba un nombre de perfil y elija Aceptar.For a Web Forms app, choose Custom in the Publish dialog box, enter a profile name, and choose OK.

  4. En el método de publicación , a continuación, elija sistema de archivos.In the Publish method field, choose File system.

  5. Para el ubicación de destino, haga clic en el examinar botón.For the Target location, click the Browse button.

  6. (ASP.NET Core) Elija sistema de archivos y seleccione la carpeta que creó anteriormente para la aplicación.(ASP.NET Core) Choose File System and select the folder where you previously created for the app.

  7. (ASP.NET) Elija IIS Localy seleccione el sitio web creado anteriormente y, a continuación, haga clic en abiertos.(ASP.NET) Choose Local IIS, and select the web site you previously created, and then click Open.

    Publicar en IISPublish to IIS

    Sugerencia

    Si ve un mensaje que indica que el servidor web no está configurado correctamente, asegúrese de que está instalada la versión correcta de ASP.NET para IIS.If you see a message that says the web server is not configured correctly, make sure that the correct version of ASP.NET is installed for IIS.

  8. Haga clic en siguiente y elija un depurar configuración.Click Next and choose a Debug configuration.

    Nota

    Si se implementa con una configuración de lanzamiento, se establece debug=false en el archivo web.config del servidor.If you deploy with a Release configuration, this sets debug=false in the server's web.config file.

  9. Haga clic en guardar para guardar la configuración de publicación y, a continuación, haga clic en publicar.Click Save to save the publish settings, and then click Publish.

    Precaución

    Si necesita realizar cambios en el código o volver a generar, debe volver a publicar y repita este paso.If you need to make changes to the code or rebuild, you must republish and repeat this step. El archivo ejecutable que copió en el equipo remoto debe coincidir exactamente con el origen local y los símbolos.The executable you copied to the remote machine must exactly match your local source and symbols.

Establecer un punto de interrupción e inicie la depuraciónSet a breakpoint and start debugging

  1. En el proyecto en Visual Studio, conjunto de un punto de interrupción en código que sepa que se ejecutará.In your project in Visual Studio, set a breakpoint on some code that you know will run.

  2. Para iniciar la depuración, presione F5 (Depurar > Iniciar depuración).To start debugging, press F5 (Debug > Start Debugging).

  3. Realizar acciones para ejecutar el código que contiene el punto de interrupción.Take actions to run the code that contains the breakpoint.

    El depurador realiza una pausa en la que estableció el punto de interrupción.The debugger pauses where you set the breakpoint.

(IIS local) Solución de problemas: No se alcanza el punto de interrupción(Local IIS) Troubleshooting: Cannot hit the breakpoint

  1. Inicie la aplicación web de IIS y asegúrese de que se ejecuta correctamente.Start the web app from IIS and make sure it runs correctly. Deje la aplicación web que se ejecuta.Leave the web app running.

  2. En Visual Studio, seleccione Depurar > asociar al proceso y conectar con el proceso ASP.NET (normalmente w3wp.exe o dotnet.exe).From Visual Studio, select Debug > Attach to Process and connect to the ASP.NET process (typically w3wp.exe or dotnet.exe). Para obtener más información, consulte adjuntar al proceso.For more information, see Attach to Process.

    Si es capaz de conectarse con adjuntar al proceso y puede alcanzar un punto de interrupción, pero no se puede iniciar la depuración con F5, es probable que una configuración es incorrecta en las propiedades del proyecto.If you are able to connect using Attach to Process and can hit a breakpoint, but can't start debugging using F5, then it is likely that a setting is incorrect in the project properties. Si está utilizando un archivo de HOSTS, compruebe que está configurado correctamente.If you are using a HOSTS file, verify that it is configured correctly.

Programación sólidaRobust Programming

ASP.NETASP.NET detecta automáticamente los cambios realizados en los archivos Web.config y aplica la nueva configuración. automatically detects any changes to Web.config files and applies the new configuration settings. No es preciso reiniciar el equipo ni el servidor IIS para que los cambios surtan efecto.You do not have to restart the computer or restart the IIS server for changes to take effect.

Un sitio web puede contener varios directorios y subdirectorios virtuales, y pueden haber archivos Web.config en cada uno de ellos.A Web site can contain multiple virtual directories and subdirectories, and Web.config files may exist in each one. Las aplicaciones ASP.NETASP.NET heredan los valores de los archivos Web.config ubicados en niveles superiores de la ruta de acceso de la dirección URL.ASP.NETASP.NET applications inherit settings from Web.config files at higher levels in the URL path. Los archivos de configuración jerárquicos permiten cambiar la configuración de varias aplicaciones ASP.NETASP.NET simultáneamente, por ejemplo de todas las aplicaciones que se encuentren por debajo en la jerarquía.Hierarchical configuration files allow you to change settings for several ASP.NETASP.NET applications at the same time, such as for all applications below it in the hierarchy. Sin embargo, si debug se establece en un archivo inferior en la jerarquía, invalida el valor más alto.However, if debug is set in a file lower in the hierarchy, it overrides the higher value.

Por ejemplo, puede especificar debug="true" en www.microsoft.com/aaa/Web.config y cualquier aplicación en la carpeta aaa o en las subcarpetas de aaa hereda esa configuración.For example, you could specify debug="true" in www.microsoft.com/aaa/Web.config, and any application in the aaa folder or in any subfolder of aaa inherits that setting. Por tanto, si su ASP.NETASP.NET aplicación está en www.microsoft.com/aaa/bbb, hereda ese valor, así como cualquier ASP.NETASP.NET aplicaciones en www.microsoft.com/aaa/ccc, www.microsoft.com/aaa/ddd y así sucesivamente.So if your ASP.NETASP.NET application is at www.microsoft.com/aaa/bbb, it inherits that setting, as will any ASP.NETASP.NET applications in www.microsoft.com/aaa/ccc, www.microsoft.com/aaa/ddd, and so on. La única excepción es si una de esas aplicaciones reemplaza la configuración por medio de su propio archivo Web.config inferior.The only exception is if one of those applications overrides the setting by means of its own lower Web.config file.

Importante

Habilitar el modo de depuración en gran medida afecta al rendimiento de su ASP.NETASP.NET aplicación.Enabling debug mode greatly affects the performance of your ASP.NETASP.NET application. No olvide deshabilitar el modo de depuración antes de implementar la aplicación o realizar controles de rendimiento.Remember to disable debug mode before you deploy a release application or conduct performance measurements.

Vea tambiénSee Also

Depuración ASP.NET: requisitos del sistema ASP.NET debugging: system requirements
Cómo: ejecutar el proceso de trabajo en una cuenta de usuario How to: Run the worker process under a user account
Cómo: buscar el nombre del proceso de ASP.NET How to: Find the name of the ASP.NET process
Depurar aplicaciones Web implementadas Debug deployed Web applications
Tutorial: Depurar un formulario Web Forms Walkthrough: Debugging a Web Form
Cómo: depurar excepciones de ASP.NET How to: Debug ASP.NET exceptions
Depuración de aplicaciones web: errores y solución de problemasDebug Web applications: Errors and troubleshooting