Introduzione
Nel panorama in rapida evoluzione dello sviluppo Web, .NET Core si distingue per la capacità di creare in modo efficiente applicazioni moderne e multipiattaforma. Un aspetto fondamentale della distribuzione di queste applicazioni è la configurazione delle impostazioni del server, in particolare l'host e la porta predefiniti. Questa guida completa approfondisce vari metodi per personalizzare queste impostazioni, garantendo che le applicazioni .NET Core vengano eseguite esattamente dove e come desideri.
Comprendere le nozioni di base
Le applicazioni .NET, per impostazione predefinita, sono configurate per essere eseguite su una porta predefinita e un indirizzo IP locale. Sebbene adatti per le fasi di sviluppo iniziali, diversi scenari di produzione possono richiedere configurazioni specifiche per ragioni che vanno dai protocolli di sicurezza ai requisiti di conformità.
Modifica dell'host e della porta
È possibile utilizzare uno dei 4 metodi indicati di seguito per modificare l'host e la porta predefiniti in un'applicazione core .NET:
Metodo 1: utilizzo del file launchSettings.json
Il file launchSettings.json è il punto di riferimento per le configurazioni dell'ambiente di sviluppo. Situato all'interno della cartella Proprietà, consente impostazioni specifiche dell'ambiente, come Sviluppo, Staging e Produzione.
{
"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"
}
}
}
}
Modificando la proprietà applicationUrl nel profilo del tuo progetto, puoi impostare URL personalizzati.
Metodo 2: configurazione programmatica
Per un maggiore controllo, soprattutto in produzione, configura l'host e la porta direttamente nel file Program.cs o Startup.cs , in base alla configurazione del tuo progetto.
.NET 5 o versioni successive:
.NET 5 e versioni successive hanno introdotto un WebApplicationBuilder , alterando il modo in cui le applicazioni vengono configurate.
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 versioni precedenti:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.UseUrls("http://0.0.0.0:5000"); // Set custom host and port
Metodo 3: variabili d'ambiente
L'impostazione della variabile di ambiente ASPNETCORE_URLS è un modo efficace per definire gli URL, particolarmente utile negli ambienti dockerizzati.
export ASPNETCORE_URLS="http://*:5000"
Questa configurazione indica all'applicazione di restare in ascolto sulla porta 5000 su tutti gli indirizzi IP.
Metodo 4: utilizzo di appsettings.json
Per una soluzione più permanente che non richiede la modifica del codice o delle variabili di ambiente, valuta la possibilità di utilizzare il file appsettings.json . Questo metodo consente di impostare gli URL direttamente nel file di configurazione della tua applicazione.
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8000"
},
"Https": {
"Url": "https://0.0.0.0:8001"
}
}
}
}
In questa configurazione, al server Kestrel viene esplicitamente richiesto di restare in ascolto su entrambi i protocolli HTTP e HTTPS, con porte e indirizzi IP personalizzabili. Questo approccio offre flessibilità per la definizione di endpoint diversi ed è facilmente regolabile senza modificare il codice sorgente dell'applicazione.
Conclusione
La possibilità di personalizzare le impostazioni predefinite di host e porta nelle applicazioni .NET Core offre agli sviluppatori la flessibilità necessaria per soddisfare i requisiti specifici dei propri ambienti di distribuzione. Sia tramite launchSettings.json per lo sviluppo, la configurazione programmatica diretta, le variabili di ambiente o il file appsettings.json per impostazioni dell'applicazione più ampie, .NET Core offre una gamma di opzioni per garantire che le tue applicazioni siano accessibili e sicure, soddisfacendo le tue esigenze operative specifiche .