记录云托管的WCF服务中捕获的异常的最佳方法是什么?
答案 0 :(得分:11)
您可以利用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存储资源管理器来查看和处理错误。