Windows服务权限写入日志文件

时间:2011-09-23 07:51:12

标签: c# windows-services nlog

我使用C#创建了一个Windows服务,用于在C:\ProgramData中写入日志(NLog}。) 当我调试服务(在我的Windows 7上)(使用上面写的代码)时,正确创建日志文件并正确写入日志记录。 但是当我在Windows服务器2008( x86 )上运行的服务器上安装服务时,没有创建日志文件(我还检查了C:\Windows\System32\,没有任何内容)。

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

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

2 个答案:

答案 0 :(得分:5)

运行services.msc,右键单击找到您的服务,然后选择Properties。查看Log On标签,了解您的服务所在的帐户。

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

答案 1 :(得分:1)

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

您必须授予该用户在日志目录中写入的权利。