Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Asp.Net Core Web API app: how to change listening address?

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!

like image 640
Admiral Land Avatar asked Apr 30 '18 09:04

Admiral Land


1 Answers

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_URLS

Set 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.

like image 194
Set Avatar answered Oct 19 '22 09:10

Set