Wie protokollieren Sie am besten die in WCF-Diensten in der Cloud abgefangenen Ausnahmen?So protokollieren Sie in WCF-Service abgefangene Ausnahmen, die in Azure bereitgestellt werden
Antwort
Sie können System.Diagnostics nutzen und Ihre Ausnahmen mit Trace.traceError()
protokollieren. Sie können dann planen, dass diese Trace-Anweisungen regelmäßig in den Tabellenspeicher hochgeladen werden (möglicherweise einmal pro Minute?), Wo Sie die Trace-Anweisungen entweder mit einer lokalen Anwendung oder einer in einer Worker-Rolle abrufen und analysieren können.
Beispiel: In der OnStart() Ihrer Worker-Rolle passen Sie den Diagnostic Manager so an, dass Ihre Trace-Daten in den Tabellenspeicher hochgeladen werden. In diesem Beispiel ist es jede Minute Hochladen auf das Konto Speicherung in DiagnosticsConnectionString angegeben (dies wird in der Standardeinstellung Speicher-zu-Punkt eingerichtet dev):
var diag = DiagnosticMonitor.GetDefaultInitialConfiguration();
diag.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information;
diag.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1.0);
DiagnosticMonitor.Start("DiagnosticsConnectionString", diag);
Dann, wenn Sie eine Ausnahme in der WCF-Dienst begegnen , melden sie es:
System.Diagnostics.Trace.TraceError("WCF Error caught: ...");
Schließlich entweder einen Code schreiben, um die Diagnosedaten abzufragen, oder so etwas wie die neuen integrierten Visual Studio Speicher-Explorer auf den Fehler zu sehen und zu handeln verwenden.