WedX - журнал о программировании и компьютерных науках

Приложение .NET Core MVC не обновляет представление, если не опубликован весь проект

У меня есть приложение .NET Core MVC, размещенное в IIS (разработка), а также в службе приложений Azure (производство).

Когда я вношу простое HTML изменение в представление Razor и публикую только это представление, оно не обновляется.

Он обновляется только в том случае, если я публикую весь проект.

Это происходит как в IIS, так и в службе приложений Azure.

Это стандартное поведение или я что-то не так делаю?

Вот страница конфигурации из службы приложений Azure:

введите здесь описание изображения



Ответы:


1

Когда вы публикуете полную программу в iis, iis компилирует и запускает ее. .net core mvc по умолчанию отключает компиляцию во время выполнения, поэтому даже если представление будет обновлено и выпущено, уже запущенная программа не будет компилировать новое представление.

Если вы хотите, чтобы iis использовал новое представление после обновления VS и выпуска представления, вы можете добавить строку кода в автозагрузку, чтобы включить функцию компиляции и запуска.

  1. Добавьте в проект пакет Nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.
  2. Добавьте следующий код в startup.cs:

services.AddRazorPages().AddRazorRuntimeCompilation();

  1. Опубликовать весь проект.
  2. После всего этого, как только вы обновите представление и опубликуете. IIS отобразит новое представление.

Вот результат моего теста. введите здесь описание изображения

10.09.2020
  • Вот ссылка на документы на случай, если кому-то понадобится дополнительная информация: docs.microsoft.com/en-us/aspnet/core/mvc/views/ 11.09.2020

  • 2

    Вам не нужно выполнять какие-либо операции на портале.

    В статье, предоставленной Lex Li, рассказывается о содержимом Razor при компиляции. Проще говоря, серверный код C# можно записать в формате .cshtml file. После компиляции он станет projectname.Views.dll, поэтому при изменении. Когда файл .cshtml не уверен, с какими проектами он связан, рекомендуется обновить его глобально, чтобы избежать ошибок, вызванных проблемами версии.

    Что касается вашей текущей проблемы с частичным обновлением, то ее тоже легко решить. Во-первых, вам нужно определить параметры включения файла или папки при компиляции. Вам нужен сначала прочитайте официальный документ.

    На скриншоте ниже мой тестовый проект.

    введите здесь описание изображения

    введите здесь описание изображения

    введите здесь описание изображения

    После моих изменений и настроек вы можете опубликовать свои настроенные файлы или папки в рабочей среде Azure. (Часть настройки кода предназначена только для справки, кодирование в соответствии с конкретными проектами)

    В сообщении вы сказали, что хотите опубликовать html-файл, затем вы можете щелкнуть правой кнопкой мыши файл или папку и выбрать опубликовать файл или папку.

    введите здесь описание изображения

    Щелкните правой кнопкой мыши папку test.

    введите здесь описание изображения

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

    введите здесь описание изображения

    подсказка:

    1. Все вышеперечисленные шаги проверены и пройдены, а ответы и части кода приведены только для справки.

    2. При возникновении проблем во время работы рекомендуется подать заявку в службу поддержки на портале.

    10.09.2020
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]