Приложение Asp.Net Core Web API: как изменить адрес прослушивания?

Я пишу простое приложение Asp.Net Core WebAPI 2.0, оно работает на моей локальной машине. Но я хочу развернуть его на сервере. Итак, я делаю это.

Моя система:

Ubuntu 16.04. Asp.Net WebAPI 2.0 (and dotnet version 2.1.105) 

Но, когда приложение запускается, он пишет:

 Now listening on:http://localhost:53115 

Когда я пытаюсь получить от него значения:

  http://id_address:53115/api/values 

И я не могу получить ответ. В почтальоне:

  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 

Что я должен делать? Можете ли вы сказать мне, как это исправить?

Я не знаю, с чего начать искать.

Спасибо!

Я использую .NETCore 2.1 prev, поэтому я не смог проверить его сам, но если я верю, что https://www.billbogaiv.com/posts/setting-aspnet-host-address-in-net-core -2 , добавление .UseUrls(urls: "http://*:5000") может поручить Kestrel прослушивать порт 5000, а не только на localhost, поэтому он должен работать и на удаленном сервере.

Другое возможное решение, UseKestrel(..) https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.1&tabs=aspnetcore2x, используя IPAddress.Any вместо Loopback .

Это настроено с помощью конфигурации сервера URL-адресов

Указывает IP-адреса или адреса узлов с портами и протоколами, которые сервер должен прослушивать для запросов.
Ключ : URL
Тип : строка
По умолчанию : http: // localhost: 5000
Установите с помощью : UseUrls
Переменная среды: ASPNETCORE_URLS

Установите для разделителя (;) список префиксов URL, на которые сервер должен ответить.


Также можно задать URL-адрес с помощью аргументов командной строки. Например:

dotnet run –urls = http://0.0.0.0:5001

но это не работает для старых версий ASP.NET Core ( зависит от того, применяется ли это исправление к используемой версии или нет ).

Обходной путь для старых версий, основанный на том факте, что вы всегда можете установить настройки узла напрямую с помощью метода .UseConfiguration :

 var config = new ConfigurationBuilder().AddCommandLine(args).Build(); return WebHost.CreateDefaultBuilder(args) .UseConfiguration(config) 

Обратите внимание: та же идея может быть использована для чтения значения настройки из любого другого источника конфигурации, например, например, файла конфигурации .