2016-05-26 7 views
2

Только что установил последние бит для ядра dotnet на сервере ubuntu 14.4.4 https://www.microsoft.com/net/core#ubuntu Тестирование webapp (dotnet run) выполняется на порту: 5000; однако при попытке запустить из веб-браузера на главной машине (ubuntu-сервер - клиентская машина vm), я получаю сообщение, что сайт не может быть достигнут. Я открыл порт 5000 на сервере Ubuntu.ASP.NET Core test: сайт не может быть достигнут

Я должен признать, что на этом сервере ubuntu установлен nginx (и успешно получить страницу nginx по умолчанию на порту 80 - ASP.NET Webapp тоже не работает, я пробовал следовать https://docs.asp.net/en/latest/publishing/linuxproduction.html, вероятно, неправильная конфигурация) ,

Однако для тестирования только с пустельгой (на порту 5000) я остановил веб-сервер nginx. Прежде всего.

Любая идея, что может пойти не так, как тестирование с пустельгой на порт: 5000?

ответ

2

пустельга веб-сервер по умолчанию прослушивает локального хоста: 5000, так что если вы не изменили, что хозяин он прослушивает вы не сможете подключиться к нему с удаленного компьютера (или в случае, хост-машина).

Существует несколько способов настройки Kestrel для прослушивания на другом хосте или порту. Простейшей реализацией будет добавить строку .UseUrls("http://0.0.0.0:5000") сразу после .UseKestrel() в вашем методе Main. Это сделало бы приложение слушать на всех доступных IP-адресов, используя порт 5000.

Update

Как svick отметил ниже, .UseUrls("http://*:5000") позволит использовать IPv6-адреса, а также.

+1

Использование 'http: // *: 5000' еще проще и также будет работать для IPv6. – svick

+0

Хорошо, я не думал о IPv6. Я обновил свой ответ, чтобы включить это. –

+0

Огромное спасибо всем вам. Сейчас работает как шарм. Когда я хочу использовать nginx в качестве обратного прокси-сервера, я могу оставить .UseUrls («http: // *: 5000») в основном файле (или, поскольку я вхожу в систему через nginx, я полагаю, это устарело)? Спасибо. – user1135780