为什么EventRecord.FormatDescription()返回null?使用System.Diagnostics.Eventing.Reader.EventLogQuery从Windows事件日志中读取事件时,EventRecord.FormatDescription()方法有时会返回null。为什么会这样?在事件查看器中有一条关于事件返回null的消息。这是由于.NET框架中的一个错误。基本上,要解决此错误,您需要做的就是将CurrentCulture设置为“en-US”。例子:varbeforeCulture=Thread.CurrentThread.CurrentCulture;尝试{Thread.CurrentThread.CurrentCulture=newCultureInfo("en-US");使用(varsession=newEventLogSession(ipOrAddress,userDomain,username,password,SessionAuthentication.Default)){varquery=newEventLogQuery("System",PathType.LogName,queryString){ReverseDirection=true,Session=session};using(varreader=newEventLogReader(query)){for(varrecord=reader.ReadEvent();record!=null;record=reader.ReadEvent()){//读取事件记录stringmessage=record.FormatDescription();}}}}最后{Thread.CurrentThread.CurrentCulture=beforeCulture;}这个变通方法很难找到,所以我想我会把它记录在一个被谷歌索引的地方。我在旧的MSConnect案例中找到它,但它已关闭,状态为“无法修复”。更新:已报告.NET4的错误,状态为“已发送给工程团队以供考虑”,并且评论表明它可能会在下一个主要的.NETFramework版本(v5)中得到修复。所以我也一直在努力解决这个问题。我无法通过改变文化来让它发挥作用。最后,我只是使用了事件记录的Properties属性中的原始数据。消息数据在那里,只是不漂亮。(虽然我的审计需求已经够好了:-))以上是C#学习教程:EventRecord.FormatDescription()为什么返回null?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
