I have aspnetcore3.1 project, and I want to set custom port for Kestrel (other than default 5000). I can possibly do it in Program.cs
by adding
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(options =>
{
options.ListenLocalhost(80);
});
webBuilder.UseStartup<Startup>();
})
But this cannot be applied to my case, so wondered, how can this be done by environment variable?
To change the port the application is using, Open the file lunchSetting. json. You will find it under the properties folder in your project and as shown below. Inside the file, change applicationUrl port (below is set to 5000) to a different port number and save the file.
Kestrel listens on http://localhost:5000 .
There are multiple ways to achieve this as documented here.
- ASPNETCORE_URLS environment variable.
- --urls command-line argument.
- urls host configuration key.
- UseUrls extension method.
To achieve this using an environment variable, simply create an environment variable called ASPNETCORE_URLS
and set the value to the URL you'd like to use
Typically this would be http://+:<port>
or https://+:<port>
Another method which, at the time of writing this answer, isn't described above is via the hostsettings.json file.
You can configure the URL & Port by creating a hostsettings.json configuration file and adding the urls
key, then add hostsettings.json to your IConfigurationBuilder
when building your WebHostBuilder
.
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/web-host?view=aspnetcore-3.1#override-configuration
Here is the code snippet from the link, in case this link ever goes dead.
Create your hostsettings.json file containing the urls
key with your value(s)
{
urls: "http://*:5005"
}
Register hostsettings.json in your IConfigurationBuilder
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false)
.AddJsonFile("hostsettings.json", optional: true)
.AddCommandLine(args)
.Build();
return WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5000")
.UseConfiguration(config)
.UseStartup<Startup>();
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With