Hosting an .net core asp.net mvc web application from a custom port number
Create a file, hosting.json
in the root of your project that contains:
{
"server.urls": "http://localhost:8500"
}
(But substitute the port number you wish to use in place of 8500)
In Program.cs
add a config item that uses that file, and add it as a configuration item to the WebHostBuilder
, like so:
public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
In project.json
ensure hosting.json
gets included when the file is published, by adding it.
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"hosting.json",
"web.config"
]
},
Then dotnet publish
as usual.
Source
- How to configure Kestrel URLs in ASP.NET Core RC2 (comments are important there too)