Вы можете воспользоваться System.Diagnostics и записать свои исключения с Trace.traceError()
. Затем вы можете запланировать, что эти операторы трассировки будут периодически выгружаться в хранилище таблиц (может быть, раз в минуту?), Где вы затем сможете получать и анализировать операторы трассировки либо с помощью локального приложения, либо с приложением, работающим в рабочей роли.
Например: в OnStart () вашей рабочей роли настройте Диспетчер диагностики для загрузки данных трассировки в хранилище таблиц. В этом примере он загружается каждую минуту в учетную запись хранения, указанную в DiagnosticsConnectionString (по умолчанию она настроена для указания на хранилище dev):
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 для просмотра и устранения ошибок.