Отладка одного экземпляра роли с эмулятором Azure Compute

Я создаю приложение, которое будет запущено на Azure. Мое решение Visual Studio содержит несколько проектов роли Azure. При отладке локально я использую эмулятор вычисления Azure.

Чтобы начать отладку, я выполняю следующие действия:

  • Я нажимаю правой кнопкой мыши на моем проекте Azure и нажимаю Set as start up project.
  • Я нажимаю F5, чтобы запустить отладчик.

Что происходит, так это то, что эмулятор /vs 2010 запускает как мои роли в сети, так и рабочие роли, даже если меня интересует только отладка одной рабочей роли. Часто, когда я пишу какой-то код обработки фонового рисунка в моей рабочей роли, мне интересно выполнить этот код без запуска веб-роли, запустить Internet Explorer и т.д.

Есть ли удобный способ заставить отладчика запускать только один из экземпляров роли, а не все из них?

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

Ответ 1

Эмулятор (аналогичный самому Azure) работает только над концепцией "облачной службы". Поэтому, когда вы запускаете w/debug, он собирается запустить все, что определено в вашем проекте Cloud Service (.ccproj). Это имитирует Azure 100%, и именно поэтому это происходит, но я могу определенно увидеть, где будет полезен ваш сценарий.

Несколько вариантов, основанных на ваших потребностях.

Если вам нужно проверить спецификацию azure (иначе она должна запускаться в эмуляторе)

  • Создайте второй файл решения, создайте новый облачный сервис здесь, добавьте свой проект. Мне нравится этот параметр, потому что сами проекты/роли остаются нетронутыми.

  • Что предложил Стюарт передо мной, создайте второй Cloud Project, заданный как запуск, запустите его.

  • Как и выше, создайте второй проект, но не беспокойтесь о запуске. Вы можете щелкнуть правой кнопкой мыши по любому проекту, перейти в Debug и выбрать начать с отладкой и добиться того, что F5 делает без привязки F5 к этому решению

Если вам не нужно проверять спецификацию на Azure (т.е. вы просто проверяете роль)

  • Щелкните правой кнопкой мыши проект роли, Debug, Начать с отладки. Таким образом, все решение остается неповрежденным, и вы просто проверяете логику

Ответ 2

Я думаю, вы можете это сделать:

  • создайте новый проект Azure Cloud в своем решении
  • добавить только одну рабочую роль в этот облачный проект
  • установить проект облака в качестве вашего проекта запуска

Это выделит только интересующего вас работника

Ответ 3

Более простым решением было бы открыть файл ServiceConfiguration.cscfg и установить для свойства "Экземпляры > Счет" значение "0" для всех ролей, которые вы не хотите запускать (это работает только в вычислительном эмуляторе, а НЕ на лазурном облаке).

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