Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

820
Vistas
¿Cómo puedo depurar Azure Functions usando .NET 5 (proceso aislado) en Visual Studio?

Recientemente migré de .NET Core 3.1 a .NET 5.0 ( usando tiempo de ejecución aislado/fuera del proceso ) para un proyecto de Azure Function en C#. Todo está funcionando como se esperaba. Sin embargo, cada vez que depuro, ninguno de mis puntos de interrupción llega. ¿Por qué no puedo depurar mi aplicación Azure Function ahora, pero antes podía hacerlo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si usa Visual Studio versión 16.10 o posterior, la depuración en Visual Studio es sencilla.

Los pasos actualizados de Microsoft son los siguientes :

Visual Studio se integra con Azure Functions Core Tools para que pueda probar sus funciones localmente usando el tiempo de ejecución completo de Azure Functions.

  • Para ejecutar su función, presione F5 en Visual Studio. Es posible que deba habilitar una excepción de firewall para que las herramientas puedan manejar solicitudes HTTP. Los niveles de autorización nunca se aplican cuando ejecuta una función localmente.

  • Copie la URL de su función de la salida del tiempo de ejecución de Azure Functions y ejecute la solicitud. Se muestra un mensaje de bienvenida a las funciones cuando la función se ejecuta correctamente y los registros se escriben en la salida del tiempo de ejecución.

  • Para detener la depuración, presione Mayús+F5 en Visual Studio.

Una vez que haya verificado que la función se ejecuta correctamente en su equipo local, es hora de publicar el proyecto en Azure.


Esta sección a continuación solo se aplica si está utilizando Visual Studio versión 16.9 o anterior. Recomiendo encarecidamente actualizar Visual Studio en lugar de usar este método "PITA".

(Consulte la respuesta de Andrii para obtener una solución alternativa)

Después de investigar mucho en línea, aprendí que el proceso aislado que usa .NET 5 para Azure Functions no admite la depuración de manera predeterminada. Para hacerlo en Visual Studio, debe seguir estos pasos (el enlace solía ser válido, pero desde entonces se actualizó).

  1. Abra su solución en Visual Studio
  2. Abra PowerShell dentro de Visual Studio (Ver -> Terminal o Ctrl-`)
  3. Navegue a su proyecto cd MyProject
  4. Inicie la función con la depuración habilitada func start –-dotnet-isolated-debug En este punto, debería ver un PID impreso en la salida del terminal similar al siguiente
 Functions: HttpExample: [GET,POST] http://localhost:7071/api/HttpExample For detailed output, run func with --verbose flag. [2021-03-09T08:41:41.904Z] Azure Functions .NET Worker (PID: 81720) initialized in debug mode. Waiting for debugger to attach...
  1. Abra la ventana Adjuntar proceso (Abrir -> Depurar) y seleccione el PID que se encuentra en la salida de la consola. En este punto, los puntos de interrupción ahora son válidos y se alcanzarán.
over 4 years ago · Santiago Trujillo Denunciar

0

Ya no es necesario porque ya se agregó la compatibilidad nativa con Visual Studio

¡Hay una manera fácil!

 public static class Program { public static void Main() { Debugger.Launch(); // The trick! <<======================================= using var host = new HostBuilder() ...

Luego simplemente inicie como de costumbre sin depurar (Ctrl+F5) y adjunte la misma instancia de Visual Studio al proceso de dotnet Adjuntar depurador

¡Y listo, depuras tu función!

over 4 years ago · Santiago Trujillo Denunciar

0

No funciona para mí. Tengo una aplicación de función en DotnetCore5, la ejecuto con Ctrl+F5. Tengo la ventana de depuración, selecciono la instancia de ejecución. La depuración activa el archivo raíz "program.cs" que contiene:

 #if DEBUG Debugger.Launch(); #endif

Pero no en este otro archivo que contiene:

 [Function(FunctionName)] public async Task Run([TimerTrigger("0 */1 * * * *" #if DEBUG , RunOnStartup = true #endif )]TimerInfo myTimer, FunctionContext executionContext) { // Application du log _log = executionContext.GetLogger(FunctionName);

Y quién está funcionando bien, lo veo en la consola iniciado (en mi ejemplo a continuación "GetRubixData")

Probé con VS 2019 y 2022. ¿Qué debo verificar?

La consola contiene:

 Functions: PostWassaSalissureMesureData: [POST] http://localhost:7071/api/PostWassaSalissureMesureData GetRubixData: TimerTrigger For detailed output, run func with --verbose flag. [2021-12-22T07:38:06.596Z] Retrying to start listener for function 'Functions.GetRubixData' (Attempt 1) [2021-12-22T07:38:06.598Z] Listener successfully started for function 'Functions.GetRubixData' after 1 retries. [2021-12-22T07:38:09.430Z] Host lock lease acquired by instance ID '000000000000000000000000DA099322'. info: Microsoft.AspNetCore.Hosting.Diagnostics[1] Request starting HTTP/2 POST http://127.0.0.1:55251/AzureFunctionsRpcMessages.FunctionRpc/EventStream application/grpc info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0] Executing endpoint 'gRPC - /AzureFunctionsRpcMessages.FunctionRpc/EventStream' [2021-12-22T07:38:59.183Z] { [2021-12-22T07:38:59.183Z] "ProcessId": 3352, [2021-12-22T07:38:59.184Z] "WorkerVersion": "1.3.1.0", [2021-12-22T07:38:59.185Z] "ProductVersion": "1.3.1\u002B9d5d2f326090a62d4496dfb45611fb696b8960e9", [2021-12-22T07:38:59.185Z] "FrameworkDescription": ".NET 5.0.13", [2021-12-22T07:38:59.186Z] "OSDescription": "Microsoft Windows 10.0.19044", [2021-12-22T07:38:59.186Z] "OSArchitecture": "X64", [2021-12-22T07:38:59.187Z] "RuntimeIdentifier": "win10-x64", [2021-12-22T07:38:59.187Z] "CommandLine": "C:\\Sources\\Comin-API\\ByCN.ComIn\\src\\00-WEB\\02-FunctionApps\\ByCN.ComIn.FunctionApps.Data\\bin\\Debug\\net5.0\\ByCN.ComIn.FunctionApps.Data.dll --host 127.0.0.1 --port 55251 --workerId 66a7fb37-4a35-4e8c-99cf-7c294ca7aea7 --requestId 3be30260-aca2-4e29-b9e8-93a35f06566f --grpcMaxMessageLength 2147483647" [2021-12-22T07:38:59.188Z] } [2021-12-22T07:38:59.200Z] Worker process started and initialized.

y se detuvo aquí, ninguna otra línea está escribiendo después a pesar de que la secuencia de comandos debería repetirse cada minuto

Saludos

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda