When using WebHostBuilder
in a Main
entry-point, how can I specify the port it binds to?
By default it uses 5000.
Note that this question is specific to the new ASP.NET Core API (currently in 1.0.0-RC2).
In ASP.NET Core 3.1, there are four main ways to specify a custom port:
Using command line arguments, by starting your .NET application with --urls=[url]
:
dotnet run --urls=http://localhost:5001/
Using appsettings.json
, by adding a Urls
node:
{
"Urls": "http://localhost:5001"
}
Using environment variables, with ASPNETCORE_URLS=http://localhost:5001/
.
Using UseUrls()
, if you prefer doing it programmatically:
public static class Program
{
public static void Main(string[] args) =>
CreateHostBuilder(args).Build().Run();
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(builder =>
{
builder.UseStartup<Startup>();
builder.UseUrls("http://localhost:5001/");
});
}
Or, if you're still using the web host builder instead of the generic host builder:
public class Program
{
public static void Main(string[] args) =>
new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("http://localhost:5001/")
.Build()
.Run();
}