Как отследить ошибки при запуске веб-роли Azure? - PullRequest
5 голосов
/ 29 сентября 2011

Я играю веб-роль в лазури. Он отлично работает локально в структуре приложения разработки, но завершается сбоем при развертывании в Azure (просто не отвечает ни на один запрос).

Я предполагаю, что это какая-то проблема с web.config, но это происходит так рано, что это происходит уже до того, как я могу настроить диагностические функции в глобальном asax. Как уже было сказано, локально все работает нормально, но от лазурной системы отклика просто нет.

Как я могу узнать, что конкретно не так, чтобы иметь возможность ее решить, например, получить текст исключения, трассировку стека, журнал системных ошибок приложения IIS или что-нибудь, что может подсказать мне настоящую проблему?

Ответы [ 2 ]

4 голосов
/ 29 сентября 2011

Абсолютно первым, что запускается в веб-роли, является не ваше приложение, а метод OnStart() в WebRole.cs в вашем проекте Azure. Это место для добавления кода для мониторинга вашего веб-сайта.

Стандартный метод заключается в копировании журналов трассировки приложения и журналов событий Windows в хранилище таблиц Azure вместе с (при необходимости) инструментарием для использования процессора, статистикой IIS и тем, что у вас есть.

Хорошее введение в это здесь: http://blog.bareweb.eu/2011/01/beginning-azure-diagnostics/

и подробное описание деталей, которые вам понадобятся в вашем приложении, можно найти здесь: http://blog.bareweb.eu/2011/03/implementing-azure-diagnostics-with-sdk-v1-4/

, который остается применимым для Azure SDK 1.5.

После того, как вы снимаете диагностику, вы можете использовать Visual Studio для непосредственного их просмотра или использовать инструмент, такой как Cerebrata Azure Diagnostics Manager , для автоматического построения и фильтрации их графиков. Этот инструмент немного грубоват (особенно для больших систем с несколькими экземплярами: графики не очень полезны), но он так же хорош, как и сейчас.


Альтернативный подход заключается в использовании удаленного рабочего стола для подключения к удаленному экземпляру и внесения некоторых изменений в журналы событий Windows и тому подобное. Вы также можете использовать браузер Internet Explorer, который находится на удаленном экземпляре, для непосредственного локального подключения к приложению и просмотра любых ошибок и т. Д., Которые в противном случае могут быть скрыты.

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

0 голосов
/ 30 сентября 2011

Настройка диагностики - лучшее долгосрочное решение для устранения ошибок в вашем приложении. Если вам нужно что-то более специальное, вы можете либо перехватить ошибки и записать их в хранилище BLOB-объектов , либо использовать собственный легкий слушатель трассировки .

...