Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

18 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 17 de septiembre de 2024
ASP.NET Core

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:

Ventana de error con mensaje: No se puede conectar al servidor web 'https'. El servidor webya no funciona

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:

Ventana de error con mensaje: Unable to connect to web server 'https'

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:

Ventana de salida de Visual Studio mostrando que la aplicación ha finalizado, y mensaje en el pie indicando que el servidor no pudo iniciar

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!