【问题标题】:IOException writing to event logIOException 写入事件日志
【发布时间】:2016-04-01 14:30:34
【问题描述】:

我们今天遇到了这个异常,只要我们重试导致它的操作,它就会不断重复

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()

重新启动为我们解决了这个问题,但没有解释根本原因。我们通常编写少于 20 个字符的源代码和少于 100 个字符的消息。运行代码的机器上的资源使用情况似乎很好。

【问题讨论】:

    标签: .net windows-server-2003 event-log


    【解决方案1】:

    重启完成后,我深入挖掘并从事件查看器中获取了应用程序日志的副本。仅当天就有约 66,000 个事件。我编写了一个测试应用程序,将 66,000 条独特的消息写入日志,它很快就完成了。

    然后我注意到我们每 10 条左右的消息都有一个不同的来源,所以我更改了我的测试应用程序,以便每次都编写一个唯一的来源和消息。大约 15 分钟后它只写了 6000。

    虽然我无法重现问题中的异常,但我认为我们的问题是我们不必要地创建了新的 EventSources,而且这经常与推荐的写入事件日志的方式背道而驰。

    作为附录,如果来源已经存在,那么问题就不会那么大了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多