I write simple Asp.Net Core WebAPI 2.0 application, it works on my local machine. But i want to deploy it to server. So, i do it.
My system:
Ubuntu 1
Try the below, it worked for me.
set ASPNETCORE_SERVER.URLS=http://0.0.0.0:5000/
I'm using .NETCore 2.1 prev, so I haven't been able to test it myself but if I believe that https://www.billbogaiv.com/posts/setting-aspnet-host-address-in-net-core-2, adding .UseUrls(urls: "http://*:5000") might be instructing Kestrel to listen to port 5000 and not only on localhost, so it should work also on a remote server.
Other possible solution, UseKestrel(..) https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.1&tabs=aspnetcore2x using IPAddress.Any instead of Loopback.
This is configured by Server urls host configuration
Indicates the IP addresses or host addresses with ports and protocols that the server should listen on for requests.
Key: urls
Type: string
Default: http://localhost:5000
Set using: UseUrls
Environment variable: ASPNETCORE_URLSSet to a semicolon-separated (;) list of URL prefixes to which the server should respond.
It is also possible to set URL using command line arguments. For example:
dotnet run --urls=http://0.0.0.0:5001
but this doesn't work out of the box for old versions of ASP.NET Core (depends on whether this fix applied to used version or not).
A workaround for old versions based on fact that you always can set host settings directly via .UseConfiguration method:
var config = new ConfigurationBuilder().AddCommandLine(args).Build();
return WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
Note, the same idea may be used to read setting value from any other configuration source, like configuration file for example.