Где находятся таблицы хранения диагностики / логов? - PullRequest
3 голосов
/ 13 ноября 2010

У меня проблема с развертыванием WebRole (службы WCF) на Azure .Моя WebRole продолжает показывать buzy в течение как минимум 30 минут, пока я не прерву его.Я развертываю через Visual Studio 2010. Я ищу некоторую информацию о трассировке, и есть несколько блогов, которые указывают мне на таблицы хранения, называемые WADInfrastructureLogsTable и WADLogsTable.

Я настроил параметры конфигурациис моей учетной записью хранения, как это:

 <ConfigurationSettings>
  <Setting name="DiagnosticsConnectionString"
    value="DefaultEndpointsProtocol=https;AccountName=sandsofttestservice;AccountKey=HgPjkzx+mjqgoDTO8SBNB3B4hdARuibWTOHrXg4BpxRKJfRZ/s4abVIoD5lOIW0LkoD0CoMb0i0GiTXA483MDQ==" />
</ConfigurationSettings>

У меня нет таблиц в моей учетной записи хранения.Даже после успешного развертывания приложений Hello World .Мой контейнер BLOB-объектов содержит контейнер vsdeploy- и wad-control, и у меня есть 4 очереди.

Как будут создаваться эти таблицы?

    public override bool OnStart()
    {
        var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
        dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
        dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
        DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);

        Trace.WriteLine("OnStart");
        // For information on handling configuration changes
        // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
        RoleEnvironment.Changing += RoleEnvironmentChanging;

        return base.OnStart();
    }

Ответы [ 3 ]

2 голосов
/ 16 ноября 2010

У меня была похожая проблема.У меня был период «перевода», установленный на 1 минуту, и он не переносился.Однако после того, как я обновил его до 5 минут, я начал видеть сообщения трассировки в WADLogsTable.Не знаю, почему это изменило ситуацию, и я не нашел никакой документации, в которой говорилось бы о минимальном периоде передачи, но у меня сработало 5 минут.

Также убедитесь, что в вашей сети есть соответствующие операторы Trace.Writeline ()/ рабочая роль.

2 голосов
/ 13 ноября 2010

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

        var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
        dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
        dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
        DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);

После того, как это настроено, через некоторое время должна появиться таблица WADLogsTable.

Вам потребуется настроить период передачи ифильтр для каждого из других типов:

  • Журнал событий
  • Журнал инфраструктуры диагностики
  • Каталоги
  • Счетчики производительности
1 голос
/ 15 ноября 2010

Сорен - если вы еще этого не сделали, вам, вероятно, следует восстановить ключ доступа к учетной записи хранения. Он указан в вашем исходном сообщении с вашими данными конфигурации.

Другим вариантом диагностики вашей проблемы является Intellitrace. Если вы используете Visual Studio 2010 Utimate, вы можете включить Intellitrace в своем развертывании. Это позволит вам загрузить файлы журналов Intellitrace, и из них вы сможете увидеть довольно подробную информацию, касающуюся развертывания и запуска вашего приложения. Возможно возникновение некоторых исключений или других ошибок, которые могут вызывать длительное состояние «Занят».

...