Existen varias maneras de forzar el puerto:
1.- Forzar el puerto al ejecutar la aplicación:
# Usando localhost, en la carpeta del proyecto:
dotnet run --urls=http://localhost:5001/
# Para poder acceder desde fuera del equipo (firewall abierto):
dotnet run --urls=http://0.0.0.0:5001/
# En la carpeta de la publicación de la app WebTest.dll:
dotnet WebTest.dll --urls=http://0.0.0.0:5001/
2.- Modificar el archivo appsettings.json
{
"Urls": "http://0.0.0.0:5001",
......
}
O con el formato:
{
"urls":"http://*.6001;https://*.6002"
}
O usando una sección Kestrel (que tiene prioridad sobre lo anterior):
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://0.0.0.0:5002"
}
}
},
3.- Usar variable de entorno:
ASPNETCORE_URLS=http://0.0.0.0:5001/
Si queremos usar la variable de entorno en un Dockerfile:
ENV ASPNETCORE_URLS=http://+:8080
EXPOSE 8080
Y si el Dockerfile se usa en un compose, el docker-compose.yml incluirá:
ports:
- "8080"
4.- Mediante programación, en Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseUrls("http://localhost:14071");
O bien, usando ConfigureKestrel:
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.ListenAnyIP(14072);
});
O bien:
ports:
- "8080"