Отладка Service Fabric

#c# #.net #azure-service-fabric

#c# #.net #azure-service-fabric

Вопрос:

Когда я пытаюсь запустить службу SF из VS в режиме отладки, я получаю следующее:

Была предпринята попытка обновить приложение, но версия приложения не была изменена. Обязательно обновите версию в манифесте приложения перед обновлением.

Где я должен вручную удалить эту службу в SF explorer. Есть ли способ как-то пропустить этот шаг удаления, чтобы отлаживаемая служба просто «перезаписывала» старую?

Ответ №1:

Это происходит потому, что конфигурация для режима отладки приложения установлена неправильно. Вероятно, параметр настроен на сохранение приложения в Service Fabric при прекращении отладки, таким образом, после первого развертывания приложение продолжит выполнять старый код, развернутый в SF.

Другой ваш вариант — установить его либо на удаление приложения, либо на обновление приложения

Для справки, ваши варианты:

Режимы отладки приложений

  • Обновить приложение Этот режим позволяет быстро изменять и отлаживать код и поддерживает редактирование статических веб-файлов во время отладки. Этот режим работает, только если ваш локальный кластер разработки находится в режиме 1 узла. Это режим отладки приложения по умолчанию.
  • Удаление приложения приводит к удалению приложения при завершении сеанса отладки.
  • Автоматическое обновление Приложение продолжает выполняться после завершения сеанса отладки. Следующий сеанс отладки будет рассматривать развертывание как обновление. В процессе обновления сохраняются все данные, которые вы ввели в предыдущем сеансе отладки.
  • Сохранить приложение Приложение продолжает работать в кластере после завершения сеанса отладки. В начале следующего сеанса отладки приложение будет удалено.

В этом документе объясняется более подробно.

Комментарии:

1. Можно ли сохранить этот параметр в файле sfproj?

Ответ №2:

Вы можете подключить отладчик к развернутым прикладным процессам. Перейдите в раздел Debug -> Присоединить к процессу. Вы можете выбрать несколько служб. Обратите внимание, что Visual Studio должна быть запущена в режиме администратора.

Если вы хотите отладить код запуска службы, используйте Debugger.Launch() . Этот метод заблокирует вызывающий код и предложит вам выбрать отладчик, вы можете выбрать запущенный экземпляр VS. К сожалению, есть ошибка, и VS2017 не отображается в качестве опции. Кроме того, вы можете вызвать Thread.Sleep(<duration>) при запуске и быстро подключить отладчик, этот последний вариант всегда работает.