Как Зарегистрировать исключения, пойманные в сервисе WCF, развернутом на Azure

Что лучший способ состоит в том, чтобы зарегистрировать исключения, пойманные в сервисе WCF, размещенном на облаке?

8
задан Ram 21 June 2010 в 10:07
поделиться

1 ответ

Вы можете использовать System.Diagnostics и регистрировать исключения с помощью Trace.traceError () . Затем вы можете запланировать периодическую загрузку этих операторов трассировки в хранилище таблиц (может быть, раз в минуту?), Где затем вы можете извлекать и анализировать операторы трассировки либо с помощью локального приложения, либо с помощью приложения, выполняемого в рабочей роли.

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

var diag = DiagnosticMonitor.GetDefaultInitialConfiguration();
diag.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
diag.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1.0);
DiagnosticMonitor.Start("DiagnosticsConnectionString", diag);

Затем, когда вы обнаружите исключение в своей службе WCF, зарегистрируйте его:

System.Diagnostics.Trace.TraceError("WCF Error caught: ...");

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

11
ответ дан 5 December 2019 в 15:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: