Как установить порт по умолчанию для приложения ASP.NET Core Angular - PullRequest
0 голосов
/ 01 июня 2018

Я создал проект ядра dotnet с шаблоном Ядро ASP.NET с Angular , используя CLI dotnet

dotnet new angular

Теперь, когда я запускаю приложениеиспользуя команду dotnet run, angular обслуживает каждый раз другой порт.

Я попытался установить порт подачи по умолчанию в angular-cli.json

"defaults": {
  ..
  "serve": {
    "port": 4200
  }
}

не работает.

Я не смог найти никакой документации в Интернете, так где я могу установить порт по умолчанию?

Ответы [ 4 ]

0 голосов
/ 22 июня 2018

SpaServices берут команду "ng serve" из файла package.json и добавляют случайный порт перед запуском команды.В Windows, чтобы обойти это, добавьте свою собственную команду порта и суффикс «& REM», который сообщает процессору команд, что все, что после этого является комментарием.

"scripts": {
  "ng": "ng",
  "start": "ng serve --hmr --o --port=5002 &REM",
  ...
  }

В окне командной строки вы увидите нечто похожее наследующее при обработке:

  > ng serve --hmr --o --port=5002 &REM "--port" "58198"
0 голосов
/ 01 июня 2018

Попробуйте следующую команду:

ng set defaults.serve.port=4201

0 голосов
/ 01 июня 2018

Хорошо, получается, что изменяющийся порт не имеет значения, так как я мог получить доступ к приложению Angular с URL-адреса http://localhost:5000

$ dotnet run
Using launch settings from /Users/raviteja/Desktop/CSharp/SignalR-Angular-ChatApp/Properties/launchSettings.json...
: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using '/Users/raviteja/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest.
info: Microsoft.AspNetCore.SpaServices[0]
      Starting @angular/cli on port 56082...
Hosting environment: Development
Content root path: /Users/raviteja/Desktop/CSharp/SignalR-Angular-ChatApp
Now listening on: https://localhost:5001
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
info: Microsoft.AspNetCore.SpaServices[0]
      > SignalR_Angular_ChatApp@0.0.0 start /Users/raviteja/Desktop/CSharp/SignalR-Angular-ChatApp/ClientApp
      > ng serve --extract-css "--port" "56082"

      ** NG Live Development Server is listening on localhost:56082, open your browser on http://localhost:56082/ **

info: Microsoft.AspNetCore.SpaServices[0]
      Date: 2018-05-31T23:44:11.061Z

info: Microsoft.AspNetCore.SpaServices[0]
      Hash: 7f8c3d48fb430eed2337
      Time: 13815ms
      chunk {inline} inline.bundle.js (inline) 3.85 kB [entry] [rendered]
      chunk {main} main.bundle.js (main) 50.5 kB [initial] [rendered]
      chunk {polyfills} polyfills.bundle.js (polyfills) 549 kB [initial] [rendered]
      chunk {styles} styles.bundle.css (styles) 119 kB [initial] [rendered]
      chunk {vendor} vendor.bundle.js (vendor) 9.5 MB [initial] [rendered]


info: Microsoft.AspNetCore.SpaServices[0]
      webpack: Compiled successfully.

Я думал, что порт, указанный в этой строке, - тот, который я должениспользуйте для доступа к приложению Angular * Оказывается,

Starting @angular/cli on port 56082...

, это не то, что я должен использовать

от MSDN :

Приложение запускает экземпляр сервера Angular CLI в фоновом режиме.В журнале регистрируется сообщение, подобное следующему: NG Live Development Server прослушивает localhost :, откройте ваш браузер на http://localhost:/. Игнорируйте это сообщение - это , а не URL дляобъединенное приложение ASP.NET Core и Angular CLI.

Но когда я пытался получить доступ к http://localhost:5000,, я получал ошибку SSL, при дальнейшем копании я обнаружил эту строку в Startup.cs

app.UseHttpsRedirection();

После добавления этого условия оно теперь работает нормально, и я могу получить доступ к приложению Angular на http://localhost:5000

if (!env.IsDevelopment())
    app.UseHttpsRedirection();
0 голосов
/ 01 июня 2018

В общем, вы правы, однако я видел несколько других мест, где это значение может быть переопределено.Один из них будет в package.json, а именно в этом блоке:

  "scripts": {
    "ng": "ng",
    "start": "ng serve --sourcemap --extractCss --host 0.0.0.0 --proxy-config proxy.config.json",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  }

Также вы можете проверить файл с именем proxy.config.json, если он у вас есть

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