Как запустить приложение выпуска asp.net core 2.1 на определенном порту? - PullRequest
0 голосов
/ 05 ноября 2018

Среда: ASP.NET Core 2.1 под Ubuntu 18.04

По умолчанию недавно созданное основное приложение asp.net работает на http://localhost:5000 и автоматически перенаправляет на https://localhost:5001

Поскольку я намереваюсь запустить свое приложение под nginx (и использовать возможности SSL nginx), я хотел бы запустить свое выпущенное приложение без https и на определенном порту, скажем, 6000.

Пост ASP.NET Core 2.1 + Kestrel (Как отключить HTTPS) объясняет, что для этого нужно просто использовать аргумент "--urls".

Вот что я попробовал:

$ dotnet publish --configuration Release
$ dotnet bin/Release/netcoreapp2.1/MyApp.dll

Приложение теперь начинает слушать в http://localhost:5000 и https://localhost:5001. Когда я выбираю http://localhost:5000,, оно автоматически перенаправляется на https://localhost:5001. Пока все хорошо.

Теперь я пытаюсь запустить порт 6000:

$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
     --urls="http://localhost:6000"

Из сообщений в окне терминала приложение, похоже, начинает слушать с http://localhost:6000. Однако при просмотре этого URL появляется ошибка «Этот сайт не может быть достигнут».

Я даже попробовал:

$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
     --urls="http://localhost:6000,https://localhost:6001"

В этом случае я получаю сообщение об ошибке, что «база путей может быть настроена только с помощью IApplicationBuilder.UsePathBase ().»

Может кто-нибудь сказать, пожалуйста, как я могу просто запустить приложение на указанном порту? Я надеюсь, что мне не нужно жестко кодировать номера портов.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

"база пути может быть настроена только с помощью IApplicationBuilder.UsePathBase ()."

Эта ошибка вызвана тем, что вы используете , между URL. Вам нужно использовать ; для разделения URL, как показано ниже:

dotnet bin/release/netcoreapp2.1/publish/webapplication3.dll --urls="http://localhost:8000;https://localhost:8001"

Я хотел бы запустить свое выпущенное приложение без https и на определенном порту, скажем, 6000.

Для запуска без https необходимо удалить app.UseHttpsRedirection(); в Startup.cs

Еще одна нота

Если вам не удается получить доступ к 6000, я предлагаю вам выполнить тест с 8000, port 6000 отключено большинством браузеров.

0 голосов
/ 05 ноября 2018

Согласно этой части документации это должно быть что-то вроде dotnet run --urls "http://*:8080". Так что между ними нет знака равенства. Но согласно документации Kestrel существует несколько способов определения другого порта, например. переменная среды ASPNETCORE_URLS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...