Windows服务写入日志文件的权限

本文关键字:文件 权限 日志 服务 Windows | 更新日期: 2023-09-27 18:09:31

我用c#创建了一个Windows服务,在C:'ProgramData中写日志(使用NLog)。
当我调试服务时(在我的Windows 7上)(使用上面写的代码),日志文件被正确创建,日志记录被正确写入。但是,当我在Windows server 2008 (x86)上运行的服务器上安装服务时,没有创建日志文件(我也检查了C:'Windows'System32',那里什么都没有)。

我怀疑这是一个授权问题,所以我怎么知道我的服务使用了什么权利?

PS:我已经使用命令行C:'Windows'Microsoft.NET'Framework'v4.0.30319'InstallUtil.exe C:'PathToMyService'MyService.exe安装了我的服务,并具有管理员权限。

Windows服务写入日志文件的权限

运行services.msc,找到您的服务右键选择Properties。检查Log On选项卡,查看您的服务在哪个帐户下运行。

至于你的问题,默认情况下,我认为大多数服务在Local System Account下运行,我认为C:'ProgramData目录具有写入权限。您确定nlog.config文件与您的服务一起部署了吗?

您应该在windows控制面板fpr services中看到您的服务。在上下文菜单中,您可以看到运行服务的用户。你甚至可以更改在那里运行你的服务的用户。

您必须给该用户在您的日志目录中写入的权限。