Asp.Net Core Web API app: how to change listening address?
Solution 1
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
.
Solution 2
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.
Admiral Land
Updated on July 05, 2022Comments
-
Admiral Land almost 2 years
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 16.04. Asp.Net WebAPI 2.0 (and dotnet version 2.1.105)
But, when app starts it writes:
Now listening on:http://localhost:53115
When i try to get values from it:
http://id_address:53115/api/values
And i can not get response. In Postman:
Could not get any response There was an error connecting to http://id_address:53115/api/values. Why this might have happened: The server couldn't send a response: Ensure that the backend is working properly Self-signed SSL certificates are being blocked: Fix this by turning off 'SSL certificate verification' in Settings > General Proxy configured incorrectly Ensure that proxy is configured correctly in Settings > Proxy Request timeout: Change request timeout in Settings > General
What i should do? Can you tell me how to fix that?
I do not know where to start looking for.
Thank you!
-
FiniteLooper almost 5 yearsI tried all kinds of variation on the
--urls
option, but I couldn't get anything to work