文件大小超出允许的限制,无法保存在EventLog上

时间:2012-08-30 20:05:10

标签: c# .net web-services event-viewer

使用EventLog

写入事件查看器时,获取此异常文件大小超出了允许的限制且无法保存

使用的代码:

                    string cs = "LoggingService";
                    EventLog elog = new EventLog();

                    if (!EventLog.SourceExists(cs))
                    {
                        EventLog.CreateEventSource(cs, cs);
                    }

                    elog.Source = cs;
                    elog.EnableRaisingEvents = true;

                    elog.WriteEntry(message);

堆栈追踪:

System.ComponentModel.Win32Exception (0x80004005): The file size exceeds the limit allowed and cannot be saved
   at System.Diagnostics.EventLogInternal.get_OldestEntryNumber()
   at System.Diagnostics.EventLogInternal.StartRaisingEvents(String currentMachineName, String currentLogName)
   at System.Diagnostics.EventLogInternal.set_EnableRaisingEvents(Boolean value)
事情尝试了:

  1. http://support.microsoft.com/kb/328380#top
  2. 当我在elog.Clear()之前发表此声明时elog.EnableRaisingEvents = true; 我得到了不同的异常

    System.ComponentModel.Win32Exception(0x80004005):访问被拒绝    在System.Diagnostics.EventLogInternal.Clear()

  3. 上述代码由在 LocalSystem 下运行的Web服务执行,该服务在计算机上具有完全权限。

    操作系统:Windows Server 2008R2和.NET 4.0

2 个答案:

答案 0 :(得分:1)

有一种修改日志策略的方法EventLog.ModifyOverflowPolicy。 我相信EventLog.ModifyOverflowPolicy(OverflowAction.OverwriteAsNeeded,0)可能会有所帮助。

答案 1 :(得分:-1)

事件查看器 - 属性 - 最大日志大小为1028.我碰到它并且它开始正常工作。

但在我做出上述更改之前,相同的代码正在使用另一个窗口服务。 这让我想到可能发生的事情

我尝试记录的消息只是一行(少于255个字符)