Una pregunta que me hacen con cierta frecuencia los alumnos de mi curso de ASP.NET Core en CampusMVP es que por qué, al ejecutar una aplicación de este tipo, Visual Studio les muestra un mensaje como el siguiente, no se lanza el navegador y no pueden acceder a la aplicación:
Generalmente la respuesta es bastante sencilla: Visual Studio nos está informando de que el servidor web no ha sido lanzado al ejecutar la aplicación.
Dado que esta cuestión siempre llega procedente de alumnos que recién están comenzando el curso y están haciendo sus primeros pinitos con ASP.NET Core, middlewares y tocando el código de inicialización, el motivo suele ser un despiste o un pequeño lío con las llamadas al método app.Run()
.
En ASP.NET Core se usa app.Run()
tanto para insertar middlewares finales en el pipeline (si se usa con parámetros) como para lanzar el servidor web y dejarlo a la escucha de peticiones (si se hace sin parámetros). Desde luego es una decisión discutible, pero bueno, es lo que tenemos. La cuestión es que esto puede llevar a confusión, porque si no se llama a app.Run()
(sin parámetros), el servidor web no se iniciará.
Por tanto, si os encontráis con este problema, revisad vuestro código de arranque y aseguraos de que estáis llamando a app.Run()
al final del código de inicialización:
var builder = WebApplication.CreateBuilder(args);
... // Otro código de inicialización
app.Run(); // ¡No olvidéis esta línea!
Otros síntomas del mismo problema
En Visual Studio, aparte del popup de error que hemos visto anteriormente, el problema puede manifestarse de otras formas, como en un mensaje de error algo más escueto, pero más o menos en la misma línea:
También podemos verlo en la ventana "Output" de Visual Studio, donde se nos informa de que la aplicación se ha detenido, o un mensaje de error en el pie de la ventana:
Asimismo, si observamos la ventana de consola que suele abrirse al ejecutar la aplicación desde Visual Studio, veremos que ésta se ha detenido:
C:\Projects\MyAspNetCoreApp\myAspNetCoreApp.exe (process 13400) exited with code 0 (0x0).
To automatically close the console when debugging stops, enable
Tools->Options->Debugging->Automatically close the console when debugging stops.
Press any key to close this window . . .
Por último, si en lugar de Visual Studio usamos directamente la línea de comandos, podemos verlo también muy claramente. Basta con ejecutar el proyecto desde la línea de comandos con dotnet run
y veremos que se detiene inmediatamente:
C:\Projects\MyAspNetCoreApp>dotnet run
Building...
C:\Projects\MyAspNetCoreApp>_
¡Espero que os sea de utilidad!
Publicado en Variable not found.
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario