Отладка одного экземпляра роли с эмулятором 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" для всех ролей, которые вы не хотите запускать (это работает только в вычислительном эмуляторе, а НЕ на лазурном облаке).
Таким образом, вы сохраняете свое решение неповрежденным и ваши конфигурации безопасны, а просто опускаете их из вычислительного эмулятора во время выполнения.