The*_*uke 4 .net c# windows-services event-log
我正在尝试将我的.Net Windows服务转到自定义事件日志.我正在使用EventLogInstaller安装应用程序时创建事件日志和源.我在这里读到,Windows注册源需要一段时间,因此他们建议您在尝试写入日志之前重新启动应用程序.
由于这是Windows服务,我不想强制重新启动计算机或让用户手动启动服务,因此我使用此代码等待日志存在,然后自动启动服务.
while (!(EventLog.Exists("ManageIT") || EventLog.SourceExists("ManageIT Client Service")))
{
Thread.Sleep(1000);
}
System.ServiceProcess.ServiceController controller = new System.ServiceProcess.ServiceController("ManageIT.Client.Service");
controller.Start();
Run Code Online (Sandbox Code Playgroud)
我的问题是来自服务的事件仍然写入应用程序日志,虽然我可以在注册表编辑器中看到我的自定义日志,但它不会显示在Windows 7事件查看器中.
任何帮助都感激不尽.
小智 5
默认情况下,安装服务时,源会与应用程序日志关联.如果我们稍后更改此关联,则系统需要重新启动.
但是,通过在服务类(继承自servicebase的类)构造函数中将autolog属性设置为false,我们可以阻止服务与应用程序日志的关联. http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.autolog.aspx