Depuración de aplicaciones ASP.NET Core
Nota:
Esta no es la versión más reciente de este artículo. Para la versión actual, consulte la versión .NET 8 de este artículo.
Importante
Esta información hace referencia a un producto en versión preliminar, el cual puede sufrir importantes modificaciones antes de que se publique la versión comercial. Microsoft no proporciona ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí.
Para la versión actual, consulte la versión .NET 8 de este artículo.
En este artículo se muestra cómo depurar aplicaciones Blazor, incluida la depuración de aplicaciones Blazor WebAssembly con las herramientas de desarrollo del explorador o un entorno de desarrollo integrado (IDE).
Las aplicaciones web Blazor se pueden depurar en Visual Studio o en Visual Studio Code.
Las aplicaciones Blazor WebAssembly se pueden depurar:
- En Visual Studio o Visual Studio Code.
- Mediante herramientas de desarrollo del explorador en exploradores basados en Chromium, incluidos Edge, Google Chrome, y Firefox.
Entre los escenarios disponibles para la depuración de Blazor WebAssembly se incluyen:
- Establecimiento y eliminación de puntos de interrupción.
- Ejecute la aplicación con compatibilidad de depuración en IDE.
- Examine el código en un solo paso.
- Reanude la ejecución de código con un método abreviado de teclado en IDE.
- En la ventana Variables locales, observe los valores de las variables locales.
- Vea la pila de llamadas, incluidas las cadenas de llamadas entre JavaScript y .NET.
- Use un servidor de símbolos para la depuración, configurado por las preferencias de Visual Studio.
Entre los escenarios no admitidos se incluyen:
- Depure en escenarios no locales; por ejemplo, el Subsistema de Windows para Linux (WSL) o Visual Studio Codespaces.
- Depuración en Firefox desde Visual Studio o Visual Studio Code.
Las aplicaciones Blazor Server se pueden depurar en Visual Studio o en Visual Studio Code.
Las aplicaciones Blazor WebAssembly se pueden depurar:
- En Visual Studio o Visual Studio Code.
- Mediante herramientas de desarrollo del explorador en exploradores basados en Chromium, incluidos Edge y Chrome.
Entre los escenarios no admitidos para las aplicaciones Blazor WebAssembly se incluyen:
- Establecimiento y eliminación de puntos de interrupción.
- Ejecute la aplicación con compatibilidad de depuración en IDE.
- Examine el código en un solo paso.
- Reanude la ejecución de código con un método abreviado de teclado en IDE.
- En la ventana Variables locales, observe los valores de las variables locales.
- Vea la pila de llamadas, incluidas las cadenas de llamadas entre JavaScript y .NET.
- Depure en escenarios no locales; por ejemplo, el Subsistema de Windows para Linux (WSL) o Visual Studio Codespaces.
- Use un servidor de símbolos para la depuración.
Las aplicaciones Blazor Server se pueden depurar en Visual Studio o en Visual Studio Code.
Las aplicaciones Blazor WebAssembly se pueden depurar:
- En Visual Studio o Visual Studio Code.
- Mediante herramientas de desarrollo del explorador en exploradores basados en Chromium, incluidos Edge y Chrome.
Entre los escenarios no admitidos para las aplicaciones Blazor WebAssembly se incluyen:
- Establecimiento y eliminación de puntos de interrupción.
- Ejecute la aplicación con compatibilidad de depuración en IDE.
- Examine el código en un solo paso.
- Reanude la ejecución de código con un método abreviado de teclado en IDE.
- En la ventana Variables locales, observe los valores de las variables locales.
- Vea la pila de llamadas, incluidas las cadenas de llamadas entre JavaScript y .NET.
- Alcanzar puntos de interrupción durante el inicio de la aplicación antes de que se ejecute el proxy de depuración. Esto incluye los puntos de interrupción del archivo
Program
y los de losOnInitialized{Async}
métodos de ciclo de vida de los componentes que se cargan según la primera página solicitada por la aplicación. - Depure en escenarios no locales; por ejemplo, el Subsistema de Windows para Linux (WSL) o Visual Studio Codespaces.
- Use un servidor de símbolos para la depuración.
Requisitos previos
En esta sección se explican los requisitos previos para la depuración.
Requisitos previos del usuario
La versión más reciente de los siguientes exploradores:
- Google Chrome
- Microsoft Edge
- Firefox (solo para herramientas de desarrollo del explorador)
La depuración requiere la versión más reciente de los siguientes exploradores:
- Google Chrome (predeterminado)
- Microsoft Edge
Asegúrese de que los firewalls o servidores proxy no bloquean la comunicación con el proxy de depuración (proceso NodeJS
). Para más información, vea la sección Configuración de firewall.
Nota:
Apple Safari en macOS no se admite actualmente.
Requisitos previos del IDE
Se requiere la versión más reciente de Visual Studio o Visual Studio Code.
Requisitos previos de Visual Studio Code
Visual Studio Code requiere el Kit de desarrollo de C# para Visual Studio Code (Cómo empezar con C# en VS Code). En Marketplace de extensiones de Visual Studio Code, filtre la lista de extensiones con "c# dev kit
" para buscar la extensión:
La instalación del Kit de desarrollo de C# instala automáticamente las siguientes extensiones adicionales:
Si encuentra advertencias o errores, puede abrir una incidencia (microsoft/vscode-dotnettools
repositorio de GitHub) describiendo el problema.
Requisitos previos de configuración de aplicaciones
La guía de esta subsección se aplica a la depuración del lado cliente.
Abra el archivo Properties/launchSettings.json
del proyecto de inicio. Confirme la presencia de la siguiente propiedad inspectUri
en cada perfil de inicio del nodo profiles
del archivo. Si la propiedad siguiente no está presente, agréguela a cada perfil:
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
La propiedad inspectUri
:
- Permite que el IDE detecte que la aplicación es una aplicación Blazor.
- Indica a la infraestructura de depuración de scripts que se conecte al explorador a través del proxy de depuración de Blazor.
El marco de trabajo proporciona los valores de marcador de posición para el protocolo WebSocket (wsProtocol
), el host (url.hostname
), el puerto (url.port
) y el identificador URI del inspector en el explorador iniciado (browserInspectUri
).
Paquetes
Aplicaciones web Blazor: Microsoft.AspNetCore.Components.WebAssembly.Server
: hace referencia a un paquete interno (Microsoft.NETCore.BrowserDebugHost.Transport
) para ensamblados que comparten el host de depuración del explorador.
Blazor Server: Microsoft.AspNetCore.Components.WebAssembly.Server
: hace referencia a un paquete interno (Microsoft.NETCore.BrowserDebugHost.Transport
) para ensamblados que comparten el host de depuración del explorador.
Blazor WebAssembly independiente: Microsoft.AspNetCore.Components.WebAssembly.DevServer
: servidor de desarrollo para su uso al crear aplicaciones Blazor. Llama a WebAssemblyNetDebugProxyAppBuilderExtensions.UseWebAssemblyDebugging internamente a para agregar middleware para depurar aplicaciones Blazor WebAssembly dentro de las herramientas de desarrollo de Chromium.
Blazor WebAssembly hospedada:
- Proyecto Client:
Microsoft.AspNetCore.Components.WebAssembly.DevServer
: servidor de desarrollo para su uso al compilar aplicaciones Blazor. Llama a WebAssemblyNetDebugProxyAppBuilderExtensions.UseWebAssemblyDebugging internamente a para agregar middleware para depurar aplicaciones Blazor WebAssembly dentro de las herramientas de desarrollo de Chromium. - Proyecto Server:
Microsoft.AspNetCore.Components.WebAssembly.Server
: hace referencia a un paquete interno (Microsoft.NETCore.BrowserDebugHost.Transport
) para ensamblados que comparten el host de depuración del explorador.
Nota:
Para obtener instrucciones sobre cómo agregar paquetes a aplicaciones .NET, consulte los artículos de Instalación y administración de paquetes en Flujo de trabajo de consumo de paquetes (NuGet documentación). Confirme las versiones correctas del paquete en NuGet.org.
Depuración de una aplicación web Blazor en un IDE
En el ejemplo de esta sección se supone que ha creado una aplicación web Blazor con un modo de representación interactivo de Auto (Servidor y WebAssembly) y la ubicación de interactividad por componente.
- Abra la aplicación.
- Establezca un punto de interrupción en la línea
currentCount++;
del componenteCounter
(Pages/Counter.razor
) del proyecto de cliente (.Client
). - Presione F5 para ejecutar la aplicación en el depurador.
- En el explorador, vaya a la página
Counter
en/counter
. Espere unos segundos para que el proxy de depuración se cargue y ejecute. Seleccione el botón Haga clic en mí para alcanzar el punto de interrupción. - En Visual Studio, revise el valor del campo
currentCount
en la ventana Variables locales. - Presione F5 para continuar la ejecución.
Los puntos de interrupción también se pueden alcanzar en el proyecto de servidor en componentes del lado servidor representados de forma estática e interactiva.
Detén el depurador.
Agregue el siguiente componente a la aplicación de servidor. El componente aplica el modo de representación del servidor interactivo (
InteractiveServer
).Components/Pages/Counter2.razor
:@page "/counter-2" @rendermode InteractiveServer <PageTitle>Counter 2</PageTitle> <h1>Counter 2</h1> <p role="status">Current count: @currentCount</p> <button class="btn btn-primary" @onclick="IncrementCount">Click me</button> @code { private int currentCount = 0; private void IncrementCount() { currentCount++; } }
Establezca un punto de interrupción en la línea
currentCount++;
del componenteCounter2
.Presione F5 para ejecutar la aplicación en el depurador.
En el explorador, vaya a la página
Counter2
en/counter-2
. Espere unos segundos para que el proxy de depuración se cargue y ejecute. Seleccione el botón Haga clic en mí para alcanzar el punto de interrupción.Presione F5 para continuar la ejecución.
Los puntos de interrupción no se alcanzan durante el inicio de la aplicación antes de que se ejecute el proxy de depuración. Esto incluye los puntos de interrupción del archivo Program
y los de los OnInitialized{Async}
métodos de ciclo de vida de los componentes que se cargan según la primera página solicitada por la aplicación.
Depuración de una aplicación Blazor Server en un IDE
- Abra la aplicación.
- Establezca un punto de interrupción en la línea
currentCount++;
del componenteCounter
(Pages/Counter.razor
). - Presione F5 para ejecutar la aplicación en el depurador.
- En el explorador, vaya a la página
Counter
en/counter
. Espere unos segundos para que el proxy de depuración se cargue y ejecute. Seleccione el botón Haga clic en mí para alcanzar el punto de interrupción. - En Visual Studio, revise el valor del campo
currentCount
en la ventana Variables locales. - Presione F5 para continuar la ejecución.
Los puntos de interrupción no se alcanzan durante el inicio de la aplicación antes de que se ejecute el proxy de depuración. Esto incluye los puntos de interrupción del archivo Program
y los de los OnInitialized{Async}
métodos de ciclo de vida de los componentes que se cargan según la primera página solicitada por la aplicación.
Depuración de una aplicación Blazor WebAssembly en un IDE
- Abra la aplicación.
- Establezca un punto de interrupción en la línea
currentCount++;
del componenteCounter
(Pages/Counter.razor
). - Presione F5 para ejecutar la aplicación en el depurador.
- En el explorador, vaya a la página
Counter
en/counter
. Espere unos segundos para que el proxy de depuración se cargue y ejecute. Seleccione el botón Haga clic en mí para alcanzar el punto de interrupción. - En Visual Studio, revise el valor del campo
currentCount
en la ventana Variables locales. - Presione F5 para continuar la ejecución.
Los puntos de interrupción no se alcanzan durante el inicio de la aplicación antes de que se ejecute el proxy de depuración. Esto incluye los puntos de interrupción del archivo Program
y los de los OnInitialized{Async}
métodos de ciclo de vida de los componentes que se cargan según la primera página solicitada por la aplicación.
compatibilidad con el depurador
La depuración está habilitada para el tiempo de ejecución cuando la compatibilidad con el depurador está habilitada con <DebuggerSupport>{VALUE}</DebuggerSupport>
, donde el marcador de posición {VALUE}
es true
o false
.
De manera predeterminada, el marco Blazordeshabilita la compatibilidad con el depurador para todas las configuraciones que no son de depuración. A fin de habilitar la compatibilidad del depurador para una configuración que no es de depuración, agregue una propiedad <DebuggerSupport>
al archivo del proyecto de la aplicación.
En el ejemplo siguiente, la compatibilidad con el depurador está habilitada para la configuración personalizada "DebugCustom
":
<DebuggerSupport Condition="'$(Configuration)' == 'DebugCustom'">true</DebuggerSupport>
Para más información, vea Configuración del depurador personalizado Blazor WebAssembly (dotnet/runtime
nº 96239).
Depuración de una aplicación hospedada Blazor WebAssembly en un IDE
Con el proyecto Server seleccionado en el Explorador de soluciones, presione F5 para ejecutar la aplicación en el depurador.
Al realizar una depuración con un explorador basado en Chromium, como Google Chrome o Microsoft Edge, puede que se abra una nueva ventana del navegador con un perfil distinto para la sesión de depuración, en vez de abrir una pestaña en una ventana existente con el perfil del usuario. Si la depuración con el perfil del usuario es un requisito, adopte uno de estos enfoques:
- Cierre todas las instancias abiertas del navegador antes de presionar F5 para iniciar la depuración.
- Configure Visual Studio para iniciar el explorador con el perfil del usuario. Para obtener más información sobre este enfoque, vea La depuración de WASM para Blazor en Visual Studio inicia Edge con otro directorio de datos del usuario (dotnet/aspnetcore #20915).
En el proyecto Client, establezca un punto de interrupción en la línea
currentCount++;
del componenteCounter
(Pages/Counter.razor
).En el explorador, vaya a la página
Counter
en/counter
. Espere unos segundos para que el proxy de depuración se cargue y ejecute. Seleccione el botón Haga clic en mí para alcanzar el punto de interrupción.En Visual Studio, revise el valor del campo
currentCount
en la ventana Variables locales.Presione F5 para continuar la ejecución.
También puede depurar código de servidor en el proyecto Server:
- Establezca un punto de interrupción en la página
Pages/FetchData.razor
de OnInitializedAsync. - Establezca un punto de interrupción en
WeatherForecastController
en el método de acciónGet
. - Vaya a la página
Fetch Data
para alcanzar el primer punto de interrupción en el componenteFetchData
justo antes de que emita una solicitud HTTP al servidor. - Presione F5 para continuar la ejecución y, luego, alcance el punto de interrupción en el servidor en
WeatherForecastController
. - Vuelva a presionar F5 para permitir que la ejecución continúe y ver la tabla de pronóstico meteorológico representada en el explorador.
Los puntos de interrupción no se alcanzan durante el inicio de la aplicación antes de que se ejecute el proxy de depuración. Esto incluye los puntos de interrupción del archivo Program
y los de los OnInitialized{Async}
métodos de ciclo de vida de los componentes que se cargan según la primera página solicitada por la aplicación.
No admite Iniciar sin depuración (Ctrl+F5 [Windows] o ⌘+F5 [macOS]). Cuando la aplicación se ejecuta en la configuración de depuración, la sobrecarga de depuración siempre genera una pequeña reducción del rendimiento.
Asociación a una sesión de depuración de Visual Studio Code existente
Para asociar a una aplicación Blazor en ejecución, abra el archivo .vscode/launch.json
y reemplace el marcador de posición {URL}
por la dirección URL donde se ejecuta la aplicación:
{
"name": "Attach and Debug",
"type": "blazorwasm",
"request": "attach",
"url": "{URL}"
}
Opciones de inicio de Visual Studio Code
Las opciones de configuración de inicio de la siguiente tabla son compatibles con el tipo de depuración blazorwasm
(.vscode/launch.json
).
Opción | Descripción |
---|---|
browser |
El explorador que se va a iniciar para la sesión de depuración. Se establece en edge o chrome . Tiene como valor predeterminado edge . |
cwd |
El directorio de trabajo en el que se va a iniciar la aplicación. |
request |
Use launch para iniciar y adjuntar una sesión de depuración a una aplicación Blazor WebAssembly o attach para adjuntar una sesión de depuración a una aplicación que ya está en ejecución. |
timeout |
El número de milisegundos que se esperarán para adjuntar la sesión de depuración. El valor predeterminado es 30 000 milisegundos (30 segundos). |
trace |
Se usa para generar registros desde el depurador de JS. Se establece en true para generar registros. |
url |
La dirección URL que se va a abrir en el explorador durante la depuración. |
webRoot |
Especifica la ruta de acceso absoluta del servidor web. Se debe establecer si una aplicación se envía desde una subruta. |
Las opciones adicionales de la tabla siguiente solo se aplican a aplicaciones Blazor WebAssembly hospedadas.
Opción | Descripción |
---|---|
env |
Las variables de entorno que se van a proporcionar al proceso iniciado. Solo se aplica si hosted está establecido en true . |
hosted |
Se debe establecer en true si se inicia y depura una aplicación hospedada Blazor WebAssembly. |
program |
Una referencia al archivo ejecutable para ejecutar el servidor de la aplicación hospedada. Se debe establecer si hosted es true . |
Depuración de Blazor WebAssembly con Google Chrome o Microsoft Edge
Las instrucciones de esta sección se aplican a la depuración de aplicaciones Blazor WebAssembly en:
- Google Chrome que se ejecuta en Windows o macOS.
- Microsoft Edge que se ejecuta en Windows.
Ejecute la aplicación en un shell de comandos con
dotnet run
.Inicie un explorador y vaya a la dirección URL de la aplicación.
Para iniciar la depuración remota, presione:
- Mayús+Alt+d en Windows.
- Mayús+⌘+d en macOS.
El explorador debe ejecutarse con la depuración remota habilitada, lo cual no es el valor predeterminado. Si la depuración remota está deshabilitada, aparece una página de error que informa de que no se puede encontrar la pestaña del explorador depurable con instrucciones para iniciar el explorador con el puerto de depuración abierto. Siga las instrucciones del explorador.
Después de seguir las instrucciones para habilitar la depuración remota, la aplicación se abre en una nueva ventana del explorador. Inicie la depuración remota presionando la combinación HotKey en la nueva ventana del explorador:
- Mayús+Alt+d en Windows.
- Mayús+⌘+d en macOS.
Se abre una nueva ventana del explorador de herramientas de desarrollo que muestra una imagen fantasma de la aplicación.
Nota:
Si ha seguido las instrucciones para abrir una nueva pestaña del explorador con la depuración remota habilitada, puede cerrar la ventana original del explorador, dejando abierta la segunda ventana con la primera pestaña que ejecuta la aplicación y la segunda pestaña que ejecuta el depurador.
Tras unos instantes, en la pestaña Orígenes se mostrará una lista de los ensamblados .NET y páginas de la aplicación.
Abre el nodo
file://
. En el código de componente (archivos.razor
) y archivos de código de C# (.cs
), los puntos de interrupción que establezca se alcanzan cuando el código se ejecuta en la pestaña del explorador de la aplicación (la pestaña inicial abierta después de iniciar la depuración remota). Después de alcanzar un punto de interrupción, recorra el código paso a paso (F10) o reanude (F8) la ejecución del código normalmente en la pestaña de depuración.
En la depuración del explorador basado en Chromium, Blazor proporciona un proxy de depuración que implementa el protocolo Chrome DevTools y aumenta el protocolo con información específica de .NET. Cuando se presiona el método abreviado de teclado de depuración, Blazor apunta a Chrome DevTools en el proxy. El proxy se conecta a la ventana del explorador que se quiere depurar (de ahí la necesidad de habilitar la depuración remota).
Depuración de una aplicación Blazor WebAssembly con Firefox
Las instrucciones de esta sección se aplican a la depuración de aplicaciones Blazor WebAssembly en una instancia de Firefox que se ejecuta en Windows.
La depuración de una aplicación Blazor WebAssembly con Firefox requiere configurar el explorador para la depuración remota y conectarse al explorador mediante las herramientas de desarrollo del explorador a través del proxy de depuración WebAssembly de .NET.
Nota:
La depuración en Firefox desde Visual Studio no se admite en este momento.
Para depurar una aplicación Blazor WebAssembly en Firefox durante el desarrollo:
- Configurar Firefox:
- Abra
about:config
en una nueva pestaña del explorador. Lea y descarte la advertencia que aparece. - Habilite
devtools.debugger.remote-enabled
estableciendo su valor enTrue
. - Habilite
devtools.chrome.enabled
estableciendo su valor enTrue
. - Deshabilite estableciendo
devtools.debugger.prompt-connection
su valor enFalse
.
- Abra
- Cierre todas las instancias de Firefox.
- Ejecute la aplicación en un shell de comandos con
dotnet run
. - Vuelva a iniciar el explorador Firefox y vaya a la aplicación.
- Abra
about:debugging
en una nueva pestaña del explorador. Deje esta pestaña abierta. - Vuelva a la pestaña donde se ejecuta la aplicación. Inicie la depuración remota presionando Mayús+Alt+d.
- En la pestaña
Debugger
, abra el archivo de código fuente de la aplicación que desea depurar en el nodofile://
y establezca un punto de interrupción. Por ejemplo, establezca un punto de interrupción en la líneacurrentCount++;
del métodoIncrementCount
del componenteCounter
(Pages/Counter.razor
). - Navegue hasta la página del componente
Counter
(/counter
) en la pestaña del navegador de la aplicación y seleccione el botón del contador para alcanzar el punto de interrupción. - Presione F5 para continuar la ejecución en la pestaña depuración.
Interrumpir las operaciones ante excepciones no controladas
El depurador no se interrumpe en excepciones no controladas de forma predeterminada porque Blazor detecta excepciones no controladas por código de desarrollador.
Interrumpir las operaciones ante excepciones no controladas:
- Abra la configuración de excepciones del depurador (Depurar>Windows>Configuración de excepciones) en Visual Studio.
- Establezca la siguiente configuración de excepciones de JavaScript:
- Todas las excepciones
- Excepciones no detectadas
Mapas de origen del explorador
Los mapas de origen del explorador permiten al explorador volver a asignar los archivos compilados a sus archivos de código fuente originales y se suelen usar para la depuración del lado cliente. Sin embargo, en la actualidad Blazor no asigna C# directamente a JavaScript o WASM. En su lugar, Blazor realiza la interpretación de IL en el explorador, por lo que los mapas de origen no son pertinentes.
Configuración de firewall
Si un firewall bloquea la comunicación con el proxy de depuración, cree una regla de excepción de firewall que permita la comunicación entre el explorador y el proceso NodeJS
.
Advertencia
La modificación de una configuración de firewall debe realizarse con cuidado para evitar la creación de vulnerabilidades de seguridad. Aplique con cuidado las instrucciones de seguridad, siga las recomendaciones de seguridad y respete las advertencias realizadas por el fabricante del firewall.
Permitir la comunicación abierta con el proceso NodeJS
:
- Abre el servidor de Node en cualquier conexión, en función de la configuración y las funcionalidades del firewall.
- Podría ser arriesgado en función de la red.
- Solo se recomienda en los equipos de los desarrolladores.
Si es posible, permita solo la comunicación abierta con el proceso NodeJS
en redes privadas o de confianza.
Para obtener instrucciones de configuración del Firewall de Windows, vea Crear una regla de programa o servicio de entrada. Para más información, vea Firewall de Windows Defender con seguridad avanzada y los artículos relacionados en la serie de documentos sobre el Firewall de Windows.
Solucionar problemas
Si se encuentra con errores, las sugerencias siguientes pueden ser útiles:
- Elimine los puntos de interrupción:
- Google Chrome: en la pestaña Depurador, abra las herramientas de desarrollo del explorador. En la consola, ejecute
localStorage.clear()
para quitar los puntos de interrupción. - Microsoft Edge: en la pestaña Aplicación, abra almacenamiento local. Haga clic con el botón derecho en el sitio y seleccione Borrar.
- Google Chrome: en la pestaña Depurador, abra las herramientas de desarrollo del explorador. En la consola, ejecute
- Confirme que instaló el certificado de desarrollo HTTPS de ASP.NET Core y que es de confianza. Para más información, vea Aplicación de HTTPS en ASP.NET Core.
- Visual Studio requiere la opción Habilitar depuración de JavaScript para ASP.NET (Chrome y Edge), en Herramientas>Opciones>Depuración>General. Es el valor predeterminado para Visual Studio. Si la depuración no funciona, confirme que la opción está seleccionada.
- Si su entorno usa un proxy HTTP, asegúrese de que
localhost
esté incluido en la configuración de omisión del proxy. Esto puede hacerse al establecer la variable de entornoNO_PROXY
en alguna de las siguientes opciones:- Archivo
launchSettings.json
del proyecto. - En el nivel de usuario o de entorno del sistema para que se aplique a todas las aplicaciones. Si usa una variable de entorno, reinicie Visual Studio para que el cambio surta efecto.
- Archivo
- Asegúrese de que los firewalls o servidores proxy no bloquean la comunicación con el proxy de depuración (proceso
NodeJS
). Para más información, vea la sección Configuración de firewall.
Puntos de interrupción de OnInitialized{Async}
no ejecutados
El proxy de depuración del marco de Blazor no se inicia instantáneamente al iniciarse la aplicación, por lo que es posible que no se alcancen los puntos de interrupción de los métodos de ciclo de vida de OnInitialized{Async}
. Se recomienda agregar un retraso al principio del cuerpo del método para dar al proxy de depuración un tiempo para que se inicie antes de que se ejecute el punto de interrupción. Puede incluir el retraso según una directiva de compilador if
para asegurarse de que el retraso no está presente en una compilación de versión de la aplicación.
protected override void OnInitialized()
{
#if DEBUG
Thread.Sleep(10000);
#endif
...
}
protected override async Task OnInitializedAsync()
{
#if DEBUG
await Task.Delay(10000);
#endif
...
}
Tiempo de espera de Visual Studio (Windows)
Si Visual Studio inicia una excepción relacionada con que el adaptador de depuración no ha podido iniciarse en la que se menciona que se ha alcanzado el tiempo de espera, puede ajustar el tiempo de espera con una configuración del Registro:
VsRegEdit.exe set "<VSInstallFolder>" HKCU JSDebugger\Options\Debugging "BlazorTimeoutInMilliseconds" dword {TIMEOUT}
El marcador de posición {TIMEOUT}
del comando anterior se expresa en milisegundos. Por ejemplo, un minuto se asigna como 60000
.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de