1

我创建了一个 Windows 服务,我正在使用 installutil 安装它。在项目安装程序中,我正在创建一个自定义事件日志。但是当我的服务启动时,我的所有日​​志都将转到“应用程序”而不是我的自定义日志。以下是我添加到安装程序的代码。

// Create Event Source and Event Log     
EventLogInstaller logInstaller = new EventLogInstaller();
logInstaller.Source = "MyServices";
logInstaller.Log = "MyService Events";

Installers.Add(logInstaller);

此外,服务的名称是 MyService.exe。

当我卸载并重新安装服务时,安装失败并显示以下安装日志;

运行事务安装。

开始安装的安装阶段。查看 D:\MyService\MyService\bin\Release\MyService.exe 程序集进度的日志文件内容。该文件位于 D:\MyService\MyService\bin\Release\MyService.InstallLog。

安装阶段发生异常。System.ArgumentException:源 MyServices 已存在于本地计算机上。

安装的回滚阶段即将开始。查看 D:\MyService\MyService\bin\Release\MyService.exe 程序集进度的日志文件内容。该文件位于 D:\MyService\MyService\bin\Release\MyService.InstallLog。

回滚阶段成功完成。

事务安装已完成。

这就是我写日志条目的方式;

EventLog.WriteEntry("MyServices", logMessage, logType);

有人可以帮助我我做错了什么。

4

1 回答 1

0

添加新的日志源时,您必须重新启动服务器才能正确找到日志源。

您还需要您的安装程序知道日志源是否已经存在。

因此,在添加之前添加对日志源的快速检查,并在第一次安装后重新启动服务器以使日志源正常工作。

于 2015-09-07T04:47:13.637 回答