如何记录在Azure上部署的WCF服务中捕获的异常

Ram*_*Ram 8 .net cloud azure

记录云托管的WCF服务中捕获的异常的最佳方法是什么?

Dav*_*gon 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);
Run Code Online (Sandbox Code Playgroud)

然后,每当您在WCF服务中遇到异常时,请记录它:

System.Diagnostics.Trace.TraceError("WCF Error caught: ...");
Run Code Online (Sandbox Code Playgroud)

最后,编写一些代码来查询诊断数据,或使用类似新的内置Visual Studio存储资源管理器来查看和处理错误.