标签: event-log

如何解决事件日志中的.NET 2.0错误报告消息?

我在一个名为EVEMon的开源产品上工作,用C#编写,面向.NET 2.0平台,我有一个用户遇到了我们无法解决的奇怪的.NET崩溃.

Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 4/29/2009
Time: 10:58:10 PM
User: N/A
Computer: removed this
Description:
EventType clr20r3, P1 evemon.exe, P2 1.2.7.1301, P3 49ea37c8, P4
system.windows.forms, P5 2.0.0.0, P6 4889dee7, P7 6cd3, P8 18, P9
system.argumentexception, P10 NIL.

Data:
//hex representation of the above Description

应用程序本身崩溃而不显示错误(尽管有错误处理UI),上述消息被复制出Windows事件日志.最终用户已重新安装.NET并更新到最新版本..PDB文件随程序的每个发行版本一起分发,以帮助调试和测试,有问题的用户可以获得正确版本的EVEMon的完整PDB文件.

是否有一种特定的,经过试验和测试的技术来分析和诊断这种类型的碰撞?如果有的话,有哪些工具和技术可以帮助调试?

特别谢谢

我要特别感谢Steffen Opel,并强调他的答案虽然没有直接回答我提出的问题,但我的代码库解决了更大的问题,即全局错误处理缺少一个重要组件.

.net c# crash crash-reports event-log

9
推荐指数
2
解决办法
1万
查看次数

从ASP.NET MVC应用程序写入EventLog时的安全性异常

我有一个我用一些业务逻辑创建的库,包括写一个System.Diagnostics.EventLog实例.该库通常从Windows服务应用程序调用,但现在我正在尝试从我的ASP.NET MVC应用程序调用这些相同的库函数.

我在我的控制器中尝试了这个代码来创建我传递给需要写入日志的方法的EventLog实例.

Dim log = New EventLog("Application", My.Computer.Name, "MyMVCApp")
Run Code Online (Sandbox Code Playgroud)

当库方法中的代码尝试写入日志时,会生成以下错误:

[SecurityException: Requested registry access is not allowed.]
 System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) +51
 Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable) +7462217
 System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) +366
 System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName) +194
 System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData) +205
 System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type) +14
Run Code Online (Sandbox Code Playgroud)

我的Web应用程序在运行IIS 6的Windows Server 2003上作为网络服务用户运行.为了使网络服务用户能够访问注册表,我需要做些什么吗?

有没有更好的方法来创建一个用于ASP.NET MVC应用程序的EventLog实例?是否已经由我需要引用的框架创建了一个?

asp.net-mvc iis-6 securityexception event-log

9
推荐指数
2
解决办法
8935
查看次数

即使我正在检查,也从EventLog.CreateEventSource接收"...已经注册..."!EventLog.SourceExists

我的以下代码失败,"...已经在本地计算机上注册为源",即使我先做检查:

lock ( eventLock )
{
    string eventLog = Constants.EventLogPL;
    string eventSrc = Constants.EventSrcPL;

    if (!EventLog.Exists(eventLog))
    {
        if (!EventLog.SourceExists(eventSrc))
        {
            try
            {
                EventLog.CreateEventSource(eventSrc, eventLog);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我以为我的电话!EventLog.SourceExists会足以防止我的错误!我正在使用2010 .NET 4和Windows 7 64编译到任何CPU.

编辑:更新代码以获取本地常量以检查它们是否未更改,并使用锁定以确保只有一个线程可以测试和创建.代码仍然失败并出现相同的错误.

.net c# .net-4.0 event-log

9
推荐指数
1
解决办法
6466
查看次数

Windows事件ID

Windows中是否为应用程序开发人员保留了特定范围的事件ID?

我正在研究一个将错误写入Windows事件日志的.Net应用程序.此应用程序实际上以服务器为目标,并将由偏执的sys管理员作为计划任务运行,他们希望尽可能地将其锁定(包括使用减少的权限维护帐户运行它).该应用程序将不会正式安装 - 事实上,我甚至没有为此构建安装程序; 只是一个包含.exe和app.config文件的zip文件.

这是诀窍:在Windows中,您需要管理员权限才能在应用程序事件日志中创建源.由于我不能指望这一点,我不想让过度工作的系统管理员需要创建一个,我使用"应用程序错误"(由MS Office使用)作为后备.(选择一个更好的后备是在我的待办事项清单上,因为办公室不经常安装在服务器上).

问题是我仍然希望我的活动能够脱颖而出,而不仅仅是伪装成Office.这样,我的系统管理员可以轻松过滤到事件查看器中的那些事件或他们选择的日志聚合器.我现在知道的最佳解决方案是使用事件ID,但我担心与内部Windows事件冲突,特别是考虑到我的目标受众.

我看了,但我找不到任何关于此的文件.那么,我应该使用特定范围的事件ID,我可以使用任何东西吗,或者我应该在这里看一个完全不同的选项?

.net windows eventlog-source event-log

9
推荐指数
1
解决办法
3224
查看次数

在没有事件消息文件的情况下在WiX中创建EventLog源

我在这里那里看到了一些关于使用WiX创建事件日志源的问题.令我困惑的是为什么util:EventSource/@EventMessageFile需要.当您不需要消息文件来编写事件日志条目时,必须指定它是令人讨厌的,并且.NET提供的抽象System.Diagnostics.Trace不会暴露使用它的能力.

标准建议似乎是使用目录搜索将属性设置为框架 EventLogMessages.dll,但没有人重复这个咒语给它任何理由.

如果没有使用随WiX提供的(经过测试的,强大的)自定义操作,有没有办法解决这个问题?

为什么不使用事件日志这方面的托管应用程序的作者会(显然)毫无意义地引用Framework DLL而不是他们自己的可执行文件?

.net wix wix3 event-log

9
推荐指数
1
解决办法
1615
查看次数

为什么EventRecord.FormatDescription()返回null?

System.Diagnostics.Eventing.Reader.EventLogQuery用于从Windows事件日志中读取事件时,该EventRecord.FormatDescription()方法有时会返回null.为什么是这样?在事件查看器中,有关于返回null的事件的消息.

.net c# event-log

9
推荐指数
1
解决办法
4176
查看次数

位于磁盘上的Environment.FailFast()创建的应用程序转储在哪里?

我试图在我的应用程序中使用Environment.FailFast().MSDN文档说它在应用程序终止期间创建了一个应用程序转储.

FailFast方法将消息字符串写入Windows应用程序事件日志,创建应用程序的转储,然后终止当前进程.消息字符串也包含在向Microsoft的错误报告中.

有人可以指引我到创建转储的位置吗?

.net c# event-log

9
推荐指数
1
解决办法
991
查看次数

EventLog - 获取可用日志

使用以下代码,我可以显示"应用程序"日志下列出的所有条目:

EventLog appLog = new EventLog();
appLog.Log = "Application";
appLog.MachineName = ".";  

foreach (EventLogEntry entry in appLog.Entries)
{
 // process
}  
Run Code Online (Sandbox Code Playgroud)

由于我没有FTP o RDP访问服务器,有没有办法获取所有可用日志的列表,在"应用程序"旁边?某些日志是标准的,但新的可以由用户/应用程序添加.

c# asp.net event-log

9
推荐指数
2
解决办法
4994
查看次数

将事件日志添加到注册表

我正在尝试使用服务器访问服务器上的"ForwardedEvents"事件日志

el = new EventLog("ForwardedEvents", serverName);
Run Code Online (Sandbox Code Playgroud)

这不起作用.

我相信它不起作用,因为日志不包含在Eventlog期望找到它的注册表中(HKLM/System/CurrentControlSet/Services/Eventlog/..).

如何将日志添加到注册表以便找到它,或者是否有另一种方法来访问未在该位置指定的日志?

c# registry event-log

9
推荐指数
2
解决办法
1万
查看次数

在应用程序和设置日志下的子目录中创建事件日志

我一直在寻找一种在 的子目录下创建多个单独的事件日志的方法Applications and Services Logs,就像有一个子目录Microsoft然后它有一个子目录Windows然后有应用程序登录的各种其他目录一样。

  • 应用程序和服务\Microsoft\Windows\所有用户安装代理
  • 应用程序和服务\Microsoft\Windows\AppHost
  • ...

我想创建如下所示的东西

  • 应用程序和服务\我的公司\应用程序 1
  • 应用程序和服务\我的公司\应用程序 2
  • 应用程序和服务\我的公司\应用程序 3

我遇到的所有示例都只允许您直接在Applications and Services目录下创建日志,而不能创建子目录。

谢谢

c# event-log windows-server-2012-r2

9
推荐指数
1
解决办法
7213
查看次数