Se vi siete imbattuti in questo articolo, è molto probabile che vogliate installare una applicazione web ASP.NET Core 2 su un web server Windows o Linux che ne ospita già un'altra (magari utilizzando la nostra guida o un tutorial analogo): il problema è che la porta TCP 5000, utilizzata da Kestrel come HTTP listening port per impostazione predefinita, risulta già occupata. Come fare? Sfortunatamente, il web non contiene molte informazioni su come modificare questo parametro... motivo per cui abbiamo deciso di realizzare questo articolo informativo, nella speranza che possa aiutare qualche altro sviluppatore alle prese con questo problema!
Program.cs
La prima cosa da fare per modificare la HTTP listening port predefinita di Kestrel è aprire il file Program.cs - che solitamente si trova nella cartella principale (root folder) della nostra ASP.NET Core 2 Web Application - e aggiungere la riga di codice seguente:
1 2 3 4 |
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseUrls("http://localhost:5002"); |
launchSettings.json
Una volta fatto questo, occorre modificare il file Properties/launchSettings.json aggiungendo la seguente riga di codice:
1 2 3 4 5 6 7 8 |
"<YourProjectName>": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:5003;http://localhost:5002", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } |
... E questo è tutto. Una volta effettuate queste modifiche, è sufficiente ripubblicare l'applicazione web e creare una nuova istanza di Kestrel, avendo cura di collegarla alla libreria <YourProjectName>.dll: la nuova porta (TCP 5002) sarà letta automaticamente dal file aggiornato.