.NET 4,编写用于日志记录和目录监视的Windows服务

时间:2011-04-08 14:35:23

标签: .net logging windows-services

我已经将软件编写为windows 控制台应用程序;有一个配置文件,指定如何登录该部分。

现在我已经测试了它并且工作正常,我想将其转换为Windows服务。我创建了一个新项目,但我有两个问题:

1)记录似乎不再发生;配置文件不再被读取,或者由于某些其他原因(权限?)不能进行日志记录。无论如何,我在想什么是登录Windows服务的最佳方式,也许是通过Windows事件记录?如何?或者是否更好地使我的配置文件工作,以便我可以在不重新编译的情况下禁用日志记录?

2)在服务中,我使用一组FileSystemWatcher对象来监视目录。看起来在服务中我不再获得监控事件。任何提示?

由于

修改 第2点的前进一步 - 调试后我发现我得到了事件,问题是如果我尝试使用File.Move移动文件并且失败了。

EDIT2: 点2)的另一个小步骤 - 我必须使用用户权限安装服务,否则它不会让我移动文件。这解决了。

1 个答案:

答案 0 :(得分:1)

您的帖子中有多个问题。

您可能在错误的地方看到日志的一个可能原因。服务以当前工作目录为%systemroot%\ system32启动,因此它将尝试在那里创建日志。