我使用 C# 创建了一个 Windows 服务,该服务在 C:\ProgramData
中写入日志(使用 NLog )。
当我调试服务(在我的 Windows 7 上)(使用上面编写的代码)时,日志文件已正确创建,日志记录也已正确写入。
但是,当我在 Windows Server 2008 (x86) 上运行的服务器上安装该服务时,不会创建任何日志文件(我还 checkin 了 C:\Windows\System32\
,那里什么也没有)。
我怀疑这是一个授权问题,那么我如何知道我的服务正在使用什么权限?
PS:我已经使用命令行安装了我的服务C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\PathToMyService\MyService.exe
具有管理员权限。
最佳答案
运行services.msc
,找到您的服务,右键单击并选择属性
。检查登录
选项卡以查看您的服务正在哪个帐户下运行。
至于您的问题,默认情况下,我认为大多数服务在本地系统帐户
下运行,我假设该帐户具有写入C:\ProgramData
目录的权限。您是否确定 nlog.config
文件已随您的服务一起部署?
关于c# - Windows 服务写入日志文件的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7525854/