我使用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
安装了我的服务。
答案 0 :(得分:5)
运行services.msc
,右键单击找到您的服务,然后选择Properties
。查看Log On
标签,了解您的服务所在的帐户。
至于你的问题,默认情况下我认为大多数服务都在Local System Account
下运行,我认为它有权写入C:\ProgramData
目录。您确定已将nlog.config
文件与您的服务一起部署吗?
答案 1 :(得分:1)
您应该在Windows控制面板fpr服务中看到您的服务。在上下文菜单中,您可以看到运行服务的用户。您甚至可以更改在那里运行服务的用户。
您必须授予该用户在日志目录中写入的权利。