Добавление отладочной сборки Angular / приложения в IIS - PullRequest
0 голосов
/ 07 апреля 2020

Я хотел бы добавить приложение Angular в локальный мой IIS, чтобы при необходимости я мог подключить отладчик.

Я бы использовал ng serve в фоновом режиме и не имел визуального Студия работает с IIS Express для отладки, хотя, если она может обслуживать и контент Angular, это было бы бонусом.

Это соответствует моему старому рабочему процессу для обычных MVC (и других) проектов. Я могу редактировать свой код на стороне сервера и перестраивать без необходимости останавливать и запускать IIS Express, а затем подключаться к процессу w3wp всякий раз, когда мне нужно перейти на код на стороне сервера.

Все найденные мной руководства IIS все были для производственных сборок.

. NET Решение Core 3 по сути выглядит следующим образом:

project.BusinessLayer (Библиотека классов)
project.PresentationLayer (Angular Проект с Папка ClientAppF et c.)

Ответы [ 3 ]

1 голос
/ 07 апреля 2020

Если вы запустите ng build, он сгенерирует папку dist, содержащую файл исходной карты (по умолчанию --sourcemap имеет значение true). Вы можете напрямую использовать IIS-хост для этой папки dist в качестве содержимого c. Это может быть отладка в браузере.

Я не уверен, по какой причине вы хотите разместить Angular приложение в локальном IIS вместо стандартного веб-сервера angular -cli (с запуском ng serve) , В целом, код внешнего интерфейса и код внутреннего интерфейса выполняются независимо. Для внешнего интерфейса обычно люди используют ng serve, чтобы упростить запуск и отладку, и подключаются к внутреннему интерфейсу с добавлением файла proxy.conf. json.

. net Базовое веб-приложение имеет папку wwwroot, которая используется для размещения содержимого c, вы также можете поместить туда содержимое сборки :)

1 голос
/ 07 апреля 2020

Попробуйте создать приложение angular (не prod) и сохранить содержимое этой папки в каком-либо месте системы с сервером IIS и разместить эту папку с помощью IIS. Таким образом, вы сможете разместить и отладить ваше приложение

0 голосов
/ 07 апреля 2020

Наконец-то понял это.

Установите время разработки для IIS, это позволит вам добавить цель IIS, как указано DaggeJ . Для ленивых цель добавляется через свойства проекта:

iis target entry

Добавление цели IIS должно автоматически добавить приложение в IIS. Если это не удается, просто добавьте приложение вручную, оно должно указывать на root из Angular .NET project, а не на папку ClientApp.

Веб-сокеты должны быть включены для IIS, в противном случае горячие загрузка не будет работать. Это достигается с помощью Turn windows features on or off:

windows features

IIS теперь будет обслуживать приложение, и будет работать горячая загрузка.

Есть один недостаток - изменение любого внутреннего кода и перестройка потребует повторного запуска сервера Angular, это медленный процесс, который может раздражать быстро.

Чтобы обойти это:

  • Добавить spa.UseProxyToSpaDevelopmentServer("http://localhost:4200"); в Startup.cs
  • запустить npm start из папки ClientApp ( not ng serve)

This результат тот же, что и раньше, ожидайте, что теперь приложение будет загружаться намного быстрее после перестройки.

Если вам нужно отладить серверную часть, нажмите Ctrl + Altt + p и присоедините к процессу IIS w3wp.exe. Вы можете подключить в следующий раз с помощью Ctrl + Shift + P.

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