.Net Windows-Dienst Wirft EventType clr20r3-system.Daten.sqlclient.sql-Fehler

Habe ich eine .Net/c# 2.0-windows-Dienst. Der Einstiegspunkt ist verpackt in einem try-catch-block, die mich benachrichtigt, der Probleme und der Dienst weiterhin funktioniert normal, doch wenn ich einen Blick in die server-Anwendung-Ereignisprotokoll sehe ich eine Reihe von "EventType clr20r3" Fehler sind, was den Dienst zu sterben unerwartet. Der catch-block hat ein "catch (Exception ex)" - und nicht rethrow die Ausnahme.

Jede sql-Befehle ist der Typ "CommandType.StoredProcedure" und sind ausgeführt mit SqlDataReader. Diese sproc ruft die Funktion korrekt 99% der Zeit und wurden alle gründlich Einheit getestet, profiliert und QS würde. Ich zusätzlich verpackt diese Aufrufe in try-catch-Blöcke nur um sicher zu sein und bin immer noch erleben, diese nicht behandelte Ausnahmen.

Diese nur in unserer Produktionsumgebung und kann nicht dupliziert werden in unserem dev-oder staging-Umgebungen (auch unter Last).

Warum ist meine Fehlerbehandlung nicht fangen diese bestimmten Fehler? Gibt es trotzdem, um Details zu erfassen, als um die Ursache des Problems?

Hier ist ein Beispiel für das Ereignisprotokoll:

EventType clr20r3, P1 RDC.OrderProcessorService, 
P2 1.0.0.0, 
P3 4ae6a0d0, 
P4 system.data, 
P5 2.0.0.0, P6 4889deaf, 
P7 2490, 
P8 2c, 
P9 system.data.sqlclient.sql, 
P10 NIL.

Zusätzlich

The Order Processor service terminated unexpectedly.  
It has done this 1 time(s).  
The following corrective action will be taken in 60000 milliseconds: 
Restart the service.
Sind Sie sicher, dass es keine anderen Ausnahmen werden protokolliert, in der Ereignisanzeige?
Haben Sie versucht, indem eine Anwendungsdomäne.UnhandledException-Ereignishandler? msdn.microsoft.com/en-us/library/... Ziemlich viel, das problem ist, Sie haben eine unbekannte SQL-Ausnahme irgendwo im code.
Positiv. Ich sehe nur Paare von Nachrichten, die den oben genannten Fehler und Nachrichten, die den service neu gestartet wurde.
Serapth...habe ich nicht. Ich werde das mal probieren. Das könnte ein Teil der Antwort. Sind Sie der angibt, system.Daten.sqlclient.sql kann spin up seine eigene appdomain?
Ich sehe, dass Sie erwähnen die Platzierung der Aufrufe in einem try-catch-block... dies Ist eine Implementierung der folgenden, runtingsproper.blogspot.com/2010/02/... ?

InformationsquelleAutor William Edmondson | 2010-04-29

Schreibe einen Kommentar