Как отладить веб-роль Azure, работающую в облаке?

Нам нужно отладить проблему, которая проявляется ТОЛЬКО в облаке. Он не отображается в эмуляторах (даже со строками подключения к облаку и т. д.). У нас установлен RDP на промежуточном экземпляре веб-роли, а также включен WebDeploy для быстрой и простой отладки/изменения кода.

Нам бы хотелось чего-то более мощного, где наш локальный VS2010 (Ultimate) может устанавливать/инициировать точки останова на удаленной веб-роли и проверять локальные переменные и т. д.

Кто-нибудь знает способ настроить выше?


person DeepSpace101    schedule 19.09.2012    source источник


Ответы (3)


Итак, я потратил несколько часов на борьбу с этим из-за сочетания обновлений Azure SDK, неправильных руководств и особенностей VS2012. То, что Герт сказал выше, верно в теории (спасибо!), но без рабочих деталей на системном уровне это не работает, так что это не очень полезно на практике.

Я задокументировал свой опыт работы для будущих воинов по адресу http://antirandom.com/2012/09/remotely-debugging-a-windows-azure-webrole-via-visual-studio-debugger/

person DeepSpace101    schedule 21.09.2012
comment
В идеале вы должны указать несколько основных моментов решения по ссылке здесь ... ссылка только на плохой ответ. Но это длинный пост, поэтому не знаю, как бы вы это сделали ^^. - person Andrew; 07.02.2019

В VS 2012 существует более простой способ отладки веб-роли, поскольку удаленный отладчик может быть представлен как конечная точка службы TCP. Таким образом, вам больше не понадобится часть Azure Connect.

Отличный пост в блоге находится здесь: http://blog.fullscale180.com/remote-debugging-windows-azure-cloud-services-with-visual-studio-2012/

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

person neaorin    schedule 12.01.2013
comment
Во всех случаях удаленный отладчик — это служба TCP. Вы хотите использовать Azure Connect для изоляции трафика отладки через интерфейс VPN (а не через рабочий сетевой интерфейс). Не потому, что это «единственный» способ сделать это. Часть автоматической установки внутри роли (вне большого двоичного объекта) — это круто, но требует изменения кода приложения. На самом деле можно выбирать разные шаги из приведенной выше ссылки и смешивать их с отмеченным ответом. Отмеченный ответ документирует подключение к конкретным экземплярам ваших ролей. Но отличное дополнение к этой теме! - person DeepSpace101; 14.01.2013
comment
ссылка не работает. Может быть, это может быть полезно geekswithblogs.net/shaunxu/archive/2013/11/02/ - person evgenyl; 22.07.2014

Это можно сделать с помощью удаленного отладчика Visual Studio. Есть несколько шагов, которые вы должны предпринять, чтобы включить это. Вкратце:

  1. Установите агент удаленного отладчика в роли Azure.
  2. Создайте виртуальную сетевую группу, присоединяющуюся к вашему локальному компьютеру с ролью Azure.
  3. использовать удаленный отладчик

Более подробное объяснение можно найти здесь: http://www.4tecture.ch/blog/remote-debugging-a-windows-azure-role-instance

person GertH    schedule 20.09.2012
comment
Теперь я могу подключиться к удаленному (лазурному) компьютеру, на котором запущена веб-роль. Не мог видеть процесс w3wp.exe, пока не сделал первый HTTP-запрос. Затем, когда я подключаюсь к процессу w3wp.exe, я получаю сообщение «Нет доступных источников»: текущий поток не выполняет код или стек вызовов не может быть получен в VS2012. То же самое, когда я приостанавливаю процесс. Я загрузил/развернул отладочную сборку... есть идеи? - person DeepSpace101; 21.09.2012
comment
@DeepSpace101 DeepSpace101 Спасибо за отзыв w3wp.exe, я подключился не к тому процессу (из VS2013) - person dumbledad; 27.01.2015