我使用C#创建了一个Windows服务,该服务在C:\ProgramData
中写入日志(使用NLog)。
当我调试服务(在我的Windows 7上)(使用上面写的代码)时,日志文件被正确创建并正确写入日志记录。 但是,当我在我的服务器上安装Windows服务器2008上运行的服务(x86)时,没有创建日志文件(我也检查了C:\Windows\System32\
,没有任何内容)。在日志文件中写入Windows服务权限
我怀疑这是一个授权问题,所以我怎么知道我的服务使用哪些权限?
PS:我已经使用具有管理员权限的命令行C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\PathToMyService\MyService.exe
安装了我的服务。
权利将是您的服务运行的任何身份,而不是用于安装它的身份。详情请看这里:http://stackoverflow.com/questions/858597/why-wont-my-windows-service-write-to-my-log-file –
C:\ windows \ system32不应该被用来写日志文件到。这是一个重要的操作系统目录。另外C:\ ProgramData我们是应用程序二进制文件驻留,不应该用于日志文件。您应该将应用程序服务的日志文件写入C:\ AppData \ local \ ...或Windows 2008服务器上的Windows事件日志。如果你这样做的话,你的权限问题也会减少,除此之外,这也是很好的做法。 –