问题标签 [eventlog-source]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
20672 浏览

wix - 如何使用 WiX 创建事件日志源

我正在为使用自定义事件日志源的网站创建安装程序。我希望我们基于 WiX 的安装程序在安装期间创建该事件日志源。

有谁知道使用 WiX 框架执行此操作的最佳方法。

0 投票
12 回答
27754 浏览

c# - 在安装 .Net 服务期间创建自定义事件日志和事件源的最可靠方法是什么

在安装 .Net Windows 服务期间,我难以可靠地创建/删除事件源。

这是我的 ProjectInstaller 类的代码:

引用的外观方法只返回日志、服务等名称的字符串。

此代码大部分时间都有效,但最近在安装后,我开始让我的日志条目显示在应用程序日志中,而不是自定义日志中。日志中还有以下错误:

找不到源 (AutoCheckout) 中事件 ID (0) 的描述。本地计算机可能没有必要的注册表信息或消息 DLL 文件来显示来自远程计算机的消息。您可以使用 /AUXSOURCE= 标志来检索此描述;有关详细信息,请参阅帮助和支持。

由于某种原因,它要么在卸载期间没有正确删除源,要么在安装期间没有创建它。

感谢您对此处最佳实践的任何帮助。

谢谢!

此外,这是我如何将异常写入日志的示例:

关于 stephbu 的回答:推荐的路径是安装程序脚本和 installutil,或 Windows 安装程序。

我正在使用一个安装项目,它执行服务的安装并设置日志。无论我使用 installutil.exe 还是 windows 安装项目,我相信它们都调用了我上面显示的相同的 ProjectInstaller 类。

如果在重新启动之前没有真正删除日志,我会看到我的测试机器的状态如何导致错误。我将进行更多实验,看看是否能解决问题。

编辑: 我对在安装服务期间注册源和日志名称的可靠方式感兴趣。因此,如果该服务之前已安装,它将删除源,或在后续安装期间重用源。

我还没有机会学习 WiX 来尝试这条路线。

0 投票
2 回答
8120 浏览

event-log - 如何在没有 EventMessageFile 的情况下读取 Windows 事件日志?

我有读取 Windows 事件日志的代码。它使用 OpenEventLog、ReadEventLog 并获取事件源和事件 ID。然后它在下面查找源

键,根据其中列出的内容加载适当的 DLL EventMessageFile,最后用于FormatMessage将事件字符串与消息 DLL 内容合并以获得最终的事件消息文本。这是推荐的方法,虽然有点痛苦,但效果很好。

直到...我去查找源并发现它没有一个EventMessageFile,而是一个ProvideGuid条目。这似乎是一种新方式(它们出现在 Vista 和 Windows 2008 上)。Uggh - 没有任何东西可以传递给 FormatMessage 来查找消息文本并合并到数据字符串中

:(

在注册表中搜索 guid 确实会导致对其他文件的引用(在 HTTP 源的情况下为 http.sys),但我永远无法获得完整的消息文本。我必须使用这些EvtOpenSessionAPI 吗?我希望不会,因为我已经EVENTLOGRECORD*调用了 to ReadEventLog,并且该软件需要在EvtOpenSession不受支持的 Windows 2003 上运行(仅在 Vista 和 Windows 2008 上可用)。注意:Vista 上的某些源具有 ProviderGUID,而另一些具有 EventMessageFile,因此旧方法仍然可行。

因此,我所追求的是一种查看 ProviderGuid 并获取需要传递给 FormatMessage 以显示完整事件日志消息文本的 DLL 的方法。

感谢您的任何意见

0 投票
5 回答
1753 浏览

asp.net - 始终可用于写入的事件日志源?

是否有始终可供 ASP.NET webapp 编写的事件日志源?

背景故事,以防有人有看似无关的解决方案:

我们的 ASP.NET webapp 使用它自己的事件日志源,但它没有创建它的权限。因此,如果在 webapp 尝试写入条目时事件日志源不存在(安装说明指示管理员手动注册事件日志源,但是......),我们的 webapp 不会放入任何内容出现问题时的事件日志。

我希望有另一个(与应用程序无关的)来源可以用来通知观看事件日志的人。

0 投票
2 回答
1725 浏览

c# - 如何从应用程序事件日志中删除一个来源的所有事件?

我正在使用应用程序事件日志来编写有关我的程序中发生的活动的消息。我将源设置为我的应用程序的名称。我想为用户提供仅清除与我的程序相关的事件的能力。这可能吗?我只看到一种清除整个日志的方法。

我在 .NET 2.0 中使用 c#。

0 投票
2 回答
1862 浏览

iis - 无法在 Windows 2003 Server 上打开源 {0} 的日志

我的服务器上的事件日志存在很大问题。好吧,让我首先解释一下设置。

  • 我有 2 台计算机的域设置
  • 一台计算机正在运行 IIS,另一台计算机是工作站。IIS 是运行 Win2k3 的工作站 Win XP。
  • IIS 计算机正在托管一个使用 Windows 模拟的网站,并尝试将条目记录到事件日志中,以获取名为MyApp的自定义日志文件和自定义事件源MySource
  • 我有一个名为 MyUser 的域用户,他只是域用户的成员。
  • 单点登录工作 100%,因为我可以将登录的用户写到页面上。

当我从工作站访问 IIS 页面时,我收到以下消息之一(有时我收到第一条消息,有时是第二条消息)

因此,为了尝试解决这个问题,我尝试了以下所有方法:

授予 Everyone 用户 FullControl 到 C:\windows\system32\config\MyApp.evt 文件

授予所有人用户 FullControl 到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog

在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\MyApp\CustomSD 键中,我附加了以下字符串 (A;;0x0002;;;AU),(原因可以在此处阅读http://fgheysels.blogspot.com /2008/01/cannot-open-log-for-source-0-on-windows.html )

我现在完全不知道如何解决这个问题。有没有其他人遇到过这个,你有没有尝试过其他的东西。

0 投票
1 回答
3389 浏览

wix - WIX:使用 .NET 消息文件创建 EventSource

我正在使用 WIX 为我的应用程序创建安装程序。到目前为止一切正常。但是,我试图在安装过程中创建一个新的事件源,但这并没有按预期工作。

我已经在 SO 上阅读并理解了这个问题,但是我的情况有些不同,在这种情况下,给定的解决方案似乎无法正常工作。以下是不同的做法:

  1. 我正在使用WixNetFxExtension来确定是否安装了 .NET 3.5 作为启动条件。
  2. 我正在使用WixUtilExtension为 32 位/64 位构建配置东西,如此处所述

我想做的是:在进行 32 位安装时使用 32 位框架的事件消息文件,否则使用 64 位框架的事件消息文件。

上述链接的 SO 问题中的一条评论建议使用以下内容让系统使用 32 位框架的事件消息文件:

我对此进行了修改以考虑两种类型的设置:

在文件的开头,相同的<?if ...条件起作用,相应地更改产品和文件夹名称。

该代码上方的某些行我使用以下代码来允许 .NET Framework 检测:

当我运行安装程序时,似乎一切正常,事件源也被创建,我也可以从我的应用程序中使用它,但是,我仍然得到找不到事件消息文件的信息。检查注册表我发现消息文件的路径丢失:

我希望 32 位/64 位框架的路径也存在,但它似乎没有预先设置。

我在这里做错了什么?

0 投票
2 回答
726 浏览

.net - 我可以指望这个 ASP.NET 事件日志源总是被注册吗?

未处理的异常会导致基于 ASP.NET 的应用程序在 .NET Framework 2.0 中意外退出,这让我认为使用以下约定命名的事件日志源将始终在已安装 .NET Framework 的任何框中注册:

“ASP.NET XYZ0”

其中 X、Y 和 Z 是 .NET 运行时的主要、次要和内部版本号。

假设 .NET Framework 的安装将始终创建此事件日志源是否安全?

0 投票
2 回答
4011 浏览

.net - Windows 事件 ID

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

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

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

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

我已经看过了,但我找不到任何关于此的文档。那么,我应该使用特定范围的事件 ID,我可以使用任何东西,还是应该在这里看一个完全不同的选项?

0 投票
3 回答
6754 浏览

visual-studio - Windows 服务和事件日志的设置项目

我有一个安装 Windows 服务的安装项目。

我们正在自定义日志中注册一个事件日志源,应该由 winservice 项目使用(如何以及为什么不重要)。

我的问题是安装项目默认尝试创建一个事件日志源。通过这样做,它会收到一条错误消息 ( "Error 1001" source XXX already exists on local computer) 并回滚。

我到处找,找不到注册的地方或如何关闭它。

如何强制 Windows 服务或设置项目不创建事件日志源?