2016-04-01 14 views
1

Wir über diese Ausnahme kamen heute bekannt, dass zu jeder Zeit wiederholen wir die Maßnahmen, die sie für unsIOException schriftlich Ereignisprotokoll

System.IO.IOException: Insufficient system resources exist to complete the requested service. 

    at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str) 
    at Microsoft.Win32.RegistryKey.SetValue(String name, Object value, RegistryValueKind valueKind) 
    at System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) 
    at System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName) 
    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData) 
    at System.Diagnostics.EventLog.WriteEntry(String source, String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData) 
    at System.Diagnostics.EventLog.WriteEntry(String source, String message) 
    at DoWork() 

Einen Neustart verursacht erneut versuchen dieses Problem behoben, aber nicht die Ursache erklären. In der Regel schreiben wir eine Quelle mit weniger als 20 Zeichen und eine Nachricht mit weniger als 100 Zeichen. Die Ressourcenverwendung ist auf dem Computer, auf dem der Code ausgeführt wird, in Ordnung.

Antwort

1

Ich grub mich etwas tiefer nach dem Neustart und bekam eine Kopie des Anwendungsprotokolls aus der Ereignisanzeige. Es gab ~ 66.000 Ereignisse nur für diesen Tag. Ich schrieb eine Test-App, um 66.000 eindeutige Nachrichten in das Protokoll zu schreiben, und es ging ziemlich schnell.

Dann bemerkte ich, dass wir eine andere Quelle für jede 10 oder so Nachrichten hatten, so änderte ich meine Test-App, um jedes Mal eine eindeutige Quelle und Nachricht zu schreiben. Nach etwa 15 Minuten schrieb es nur 6000.

Obwohl ich nicht in der Lage war, die Ausnahme in der Frage zu reproduzieren, glaube ich, unser Problem war, dass wir neue EventSources unnötig und oft erstellen, die gegen die empfohlene Art des Schreibens an die Ereignisprotokoll.

Als ein Addendum, wenn die Quellen bereits existierten, wäre es nicht annähernd so ein großes Problem