Привет, друзья,
Я хочу рассмотреть три проблемы, которые могут возникнуть с диагностикой Windows Azure и рабочей ролью. Я предполагаю, что вы хотите получить доступ к журналам трассировки Windows Azure, поскольку вы используете команду Trace для записи исключений и сообщений о состоянии в коде onStart.
например, Trace.WriteLine («Запуск моей службы».)
Также у вас включен прослушиватель трассировки WAD, который включен по умолчанию.
https://gist.github.com/1757147
Сценарий — Роль не начинается очень рано
У вас может быть пользовательская рабочая роль, которая запускает какую-то фоновую службу, и, возможно, она сразу перестает работать из-за какой-то конфигурации.
симптомы
Вы замечаете, что роль продолжает перерабатываться и восстанавливаться.
Журналы передачи по требованию или по расписанию передачи диагностики не работают вообще, поэтому вы не можете получить какую-либо информацию о трассировке.
Решение
Поместите этот метод в ваш файл WorkerEntryPoint.cs и вызовите его в начале OnStart () и в любом блоке Catch Exception
https://gist.github.com/1757083
например Старт
public override bool OnStart() { WaitForWindowsAzureDiagnosticsInfrastructureToCatchUp(); try {
например, исключение
catch (Exception ex) { TraceException(ex); Trace.Flush(); WaitForWindowsAzureDiagnosticsInfrastructureToCatchUp(); return true; }
Сценарий — роль не запускается чуть позже
Вы можете диагностировать проблему, так как передача по требованию / запланированная передача работает, и затем вы можете перейти к журналам трассировки, чтобы просмотреть сообщения об ошибках, которые вы записали в Trace. Напомним, что в Windows Azure есть параметры, позволяющие автоматически включать прослушиватель трассировки для перенаправления трассировки в свою таблицу WAD.
Сценарий — роль не запускается чуть позже
симптомы
Вы замечаете, что роль продолжает перерабатываться и восстанавливаться, или событие запускается, но не отвечает.
Передача по требованию не работает — вы пытаетесь, но он просто не завершается или зависает
Ниже приведены снимки экрана передачи по требованию с помощью Cerebrata Diagnostics Manager.
Решение
Если вы не можете выполнить передачу журналов трассировки по требованию, возможно, она продолжает перерабатываться и восстанавливаться быстро, чтобы произошла передача по запросу. Тогда вы временно настраиваете запланированную передачу журналов трассировки.
При использовании Cerebrata Diagnostics Manager
Нажмите Удаленная диагностика в подписках под вашими источниками данных.
После того, как вы настроили передачу расписаний, этот инструмент в основном ЗАГРУЗИТ файл конфигурации в ваш BLOB-контейнер: wad-control-container
Azure автоматически обнаружит изменения в этом контейнере и применит их к диспетчеру диагностики. Следовательно, конфигурация Windows Azure Diagnostics на лету
Теперь, когда мы запланировали передачу на место, перезагрузите роль, которая вызывает проблему, а затем подождите, пока она попытается запустить и завершить сбоем, а затем просто загрузите журналы трассировки, и она должна быть там.
Резюме
Итак, убедитесь, что у вас есть глупая команда sleep в рабочей точке входа OnStart и в тех областях, где вы ловите исключения в случае сбоя рабочей роли до диагностики Windows Azure!
Попробуйте передачу по требованию, если есть проблема, и если она не работает, настройте запланированную передачу на лету, а затем перезагрузите роль, чтобы получить журналы запуска.
ПРЕДУПРЕЖДЕНИЕ!
Запланированные переводы повлияют на выставление счетов за услуги хранения, УБЕДИТЕСЬ, что вы выключите его, когда закончите диагностику проблемы, в противном случае вам будет выставлен счет за это.
Обратите внимание, что на снимке экрана я ВСЕГДА использую квоту, поэтому я никогда не использую хранилище диагностики — а журналы трассировки Windows Azure хранятся в TABLE Storage:
Помните, что конфигурация WAD находится в Blob, а фактические журналы трассировки находятся в таблицах.
Источник: http://romikoderbynew.com/2012/02/07/windows-azurediagnosing-role-start-ups/