Самый простой способ запустить / отладить приложение ASP.NET Core - PullRequest
3 голосов
/ 09 мая 2019

Я только что обновил свое приложение ASP.NET (Framework) MVC до ASP.NET Core 2.2. Этот процесс был достаточно болезненным, однако еще более болезненным является локальное выполнение веб-приложения.

Проблемы с запуском в IIS Express:

  • Если я запускаю приложение с помощью F5 (для включения отладки), то после прекращения отладки окно браузера закрывается, поэтому мне приходится каждый раз начинать заново с домашней страницы после изменения любого кода.
  • Если я запускаю приложение с помощью Ctrl + F5 (без отладки), после нескольких перестроений веб-сайт, кажется, умирает, а это означает, что любые новые запросы на странице просто говорят, что хост не найден. Затем мне нужно снова нажать Ctrl + F5, чтобы снова начать работу, но потом я снова на главной странице.
  • Visual Studio 2019 иногда решает запустить веб-страницу в моем существующем окне Chrome на новой вкладке, но иногда решает запустить ее в совершенно новом окне Chrome. После нескольких минут разработки у меня осталось несколько вкладок и открытых окон.

Проблемы с запуском в IIS:

  • Единственный способ, которым он запускается, - это если я вручную отредактирую свой Web.config, чтобы иметь правильные значения для processPath ("dotnet") и аргументов ("./bin/Debug/Housters.Web.dll"). Visual Studio любит вставлять в aspNetCore processPath = "% LAUNCHER_PATH%" arguments = "% LAUNCHER_ARGS%" каждый раз, когда я создаю или запускаю свое приложение, несмотря на то, что в моем .csproj имеется IsTransformWebConfigDisabled = true. Поэтому мне постоянно приходится заходить в git и отменять эти изменения, иначе мое приложение вернется к страшной странице сбоя загрузки обработчика обработчиков ANCM.
  • Предполагая, что Web.config имеет правильные значения, после запуска приложения в браузере я больше не могу собрать проект. Вместо этого выдает ошибку: Ошибка MSB3027 Не удалось скопировать «obj \ Debug \ netcoreapp2.2 \ Housters.Web.dll» в «bin \ Debug \ Housters.Web.dll». Превышено число повторных попыток 10. Не удалось. Файл заблокирован: «Рабочий процесс IIS (15496)». IIS использует dll веб-приложения ASP.NET Core, поэтому я не могу на самом деле обновить свой код и собрать его, это просто замечательно. Обходной путь - перезапустить мой пул приложений IIS, но он быстро устаревает, когда вам нужно сделать это перед каждой отдельной перестройкой.
  • Присоединение к процессу w3wp.exe не приводит к попаданию точек останова, поэтому я не могу отлаживать в IIS (отладка IIS Express работает отлично.)
  • Профили запуска, которые я настроил в файле launchSettings.json, игнорируются. Например, когда я выбираю свой профиль запуска IIS (который имеет «http://localhost" в качестве launchUrl и applicationUrl), если я F5 или Ctrl + F5, он открывает» http://localhost:62551/" в окне браузера.

Таким образом, возникает вопрос: как другие разрабатывают / запускают / отлаживают свои приложения ASP.NET Core на своих локальных компьютерах? Может быть, большинство веб-разработчиков перешли с ASP.NET на чисто JavaScript-фреймворки, такие как Angular, React и Vue, так что мне просто не повезло? Или я упускаю что-то, что сделает разработку ASP.NET Core менее болезненной?

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