首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改windows服务中的事件日志

更改windows服务中的事件日志
EN

Stack Overflow用户
提问于 2014-10-01 15:05:23
回答 2查看 2.6K关注 0票数 3

今天我编写了我的第一个windows服务,下面是非常有用的演练:http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx

一切都很好。

当我让服务开始工作时,我开始编辑它,以获得我真正的代码,这也很好。

但是,我发现如果在下面的代码中更改事件日志或源的名称,则服务将不会启动。将其更改为演练中使用的名称,可以让服务重新启动。

代码语言:javascript
运行
复制
eventLog1 = new System.Diagnostics.EventLog();
if (!System.Diagnostics.EventLog.SourceExists("TwitterService"))
{
    System.Diagnostics.EventLog.CreateEventSource(
    "TwitterService", "TwitterLog");
}
eventLog1.Source = "TwitterService";
eventLog1.Log = "TwitterLog";

我只能猜测注册表包含对服务名称和日志文件的某种引用,除非它们匹配,否则不允许它运行,所以我已经删除了引用日志的所有注册表项。

但仍然没有运气,在删除注册表项和重新启动服务的原始名称后,键将被重新创建。但不是用其他名字创建的。

如何更改LogFile名称?不是一个节目停止,但希望它有一些参考服务。

干杯

编辑:

多亏了CodeCaster,我发现了有问题的错误消息。

源“TwitterService”未在日志“TwitterLog”中注册。(已在日志“申请”中登记。)

下面是这个帖子:Event log write error,我现在可以正确地启动和记录服务了。

但是,它现在正在登录到“应用程序”日志,并需要行

代码语言:javascript
运行
复制
System.Diagnostics.EventLog.DeleteEventSource("TwitterService");

在检查之前,它的存在是为了让它开始。

如何更改/设置注册TwitterService源的位置?

我从未在任何地方注册过原件(MySource / MyNewLog)。

EDIT2:

这篇文章解释说,需要重新启动才能让它登录到正确的位置。Windows Event Log - how to register an event source? -现在起作用了。

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-01 15:21:49

我只能猜测注册表包含对服务名称和日志文件的某种引用,除非它们匹配,否则不允许它运行,所以我已经删除了引用日志的所有注册表项。

否,您的应用程序必须存在事件日志才能对其进行写入,并且您的进程必须具有创建事件日志的管理权限。

如果你在网站的搜索引擎中输入实际的异常文本(在你的问题中是有用的),你会找到非常有用的答案。

票数 1
EN

Stack Overflow用户

发布于 2014-10-01 15:18:49

如果使用示例的事件源名称运行服务一次,则首先卸载旧服务。之后,更改源名并重新安装您的服务。这应该能起作用。

还要确保在EventLogInstaller组件中更改它们(如果使用的话)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26144465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档