0

我们编写了一个类,负责记录从.NET Framework 4.6 的EventSource派生的事件。我们已经在 Web 应用程序中成功地使用了这种机制,但我们正在努力让它与作为服务运行的 Windows 应用程序一起工作。该服务是使用Installer Class 安装的。安装后,它显示在 services.msc 管理单元中,分配给本地系统帐户

要注册我们的 EventSource,我们使用带有参数的wevtutil 程序。im Manifestfilename.man打开eventvwr.msc管理单元会显示我们新注册的 EventSource。我们正在使用Debug 和 Operational通道来记录我们的事件。

但是,当我们通过在服务管理单元中发出启动命令来启动应用程序时,日志记录机制似乎无法正常工作。该应用程序不会在操作通道中生成任何条目。相反,它在调试通道中创建条目,但它在调试通道中创建的条目是应该写入操作通道的条目。为调试通道指定的条目将被忽略。

我们在应用程序中内置了调试模式模式,因此我们可以将其作为桌面应用程序运行,而无需安装服务。在此调试模式下运行应用程序时,事件记录机制完美无缺。

因此我们怀疑这是一个权限问题,阻止了我们的 Windows 服务写入事件日志。不过这似乎很奇怪,因为执行调试模式应用程序的用户没有运行该服务的本地系统帐户的特权。我们还没有找到解决这个问题的方法。wevtutil sl按照本文所述设置权限并没有产生预期的结果。

4

0 回答 0