Introducción
En el panorama del desarrollo web en rápida evolución,.NET Core se destaca por su capacidad para crear de manera eficiente aplicaciones modernas y multiplataforma. Un aspecto clave de la implementación de estas aplicaciones es configurar los ajustes del servidor, específicamente el host y el puerto predeterminados. Esta guía completa profundiza en varios métodos para personalizar estas configuraciones, garantizando que sus aplicaciones.NET Core se ejecuten exactamente dónde y cómo las desea.
Comprender los conceptos básicos
Las aplicaciones.NET, de forma predeterminada, están configuradas para ejecutarse en un puerto predeterminado y una dirección IP local. Si bien es adecuado para el desarrollo inicial, diferentes escenarios de producción pueden requerir configuraciones específicas por razones que van desde protocolos de seguridad hasta requisitos de cumplimiento.
Cambiar el host y el puerto
Puede utilizar uno de los 4 métodos siguientes para cambiar el host y el puerto predeterminados en una aplicación principal.NET:
Método 1: usar el archivo launchSettings.json
El archivo launchSettings.json es el punto de referencia para las configuraciones del entorno de desarrollo. Ubicado dentro de la carpeta Propiedades, permite configuraciones específicas del entorno, como Desarrollo, Puesta en escena y Producción.
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:54321/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "weatherforecast",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"YourProjectName": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Al cambiar la propiedad applicationUrl en el perfil de su proyecto, puede establecer URL personalizadas.
Método 2: configuración programática
Para obtener más control, especialmente en producción, configure el host y transfiéralo directamente al archivo Program.cs o Startup.cs, según la configuración de su proyecto.
.NET 5 o posterior:.NET 5 y posteriores introdujeron WebApplicationBuilder, alterando la forma en que se configuran las aplicaciones.
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.Listen(System.Net.IPAddress.Any, 5000); //Listen on all network interfaces on port 5000
});
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
.NET Core 3.1 o anterior:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseStartup().UseUrls("http://0.0.0.0:5000"); //Set custom host and port
Método 3: variables de entorno
Configurar la variable de entorno ASPNETCORE_URLS es una forma eficaz de definir URL, especialmente útil en entornos dockerizados.
export ASPNETCORE_URLS="http://*:5000"
Esta configuración le dice a la aplicación que escuche en el puerto 5000 en todas las direcciones IP.
Método 4: usar appsettings.json
Para obtener una solución más permanente que no requiera cambiar el código o las variables de entorno, considere usar el archivo appsettings.json. Este método le permite configurar URL directamente en el archivo de configuración de su aplicación.
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8000"
},
"Https": {
"Url": "https://0.0.0.0:8001"
}
}
}
}
En esta configuración, se solicita explícitamente al servidor Kestrel que escuche en los protocolos HTTP y HTTPS, con puertos y direcciones IP personalizables. Este enfoque ofrece flexibilidad para definir diferentes puntos finales y se ajusta fácilmente sin cambiar el código fuente de la aplicación.
Conclusión
La capacidad de personalizar la configuración predeterminada de host y puerto en aplicaciones.NET Core brinda a los desarrolladores la flexibilidad para cumplir con los requisitos específicos de sus entornos de implementación. Ya sea a través de launchSettings.json para desarrollo, configuración programática directa, variables de entorno o el archivo appsettings.json para configuraciones de aplicaciones más amplias,.NET Core ofrece una variedad de opciones para garantizar que sus aplicaciones sean accesibles y seguras, satisfaciendo sus necesidades operativas específicas.