【发布时间】:2011-11-23 11:04:23
【问题描述】:
我使用 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 安装了我的服务。
【问题讨论】:
-
权限将是您的服务运行的任何身份,而不是用于安装它的身份。详情见这里:stackoverflow.com/questions/858597/…
-
C:\windows\system32 不应用于写入日志文件。这是一个重要的操作系统目录。另外 C:\ProgramData 我们是应用程序二进制文件,不应用于日志文件。您应该将应用程序服务的日志文件写入 C:\AppData\local\... 或 Windows 2008 服务器上的 Windows 事件日志。如果您这样做,除了这是一种很好的做法外,您的权限问题也会更少。
标签: c# windows-services nlog