【发布时间】:2011-08-30 15:06:57
【问题描述】:
我正在使用 nlog 来编写日志文件以进行调试。目前日志文件位置设置为:
<target
name="file"
xsi:type="File"
fileName="${specialfolder:folder=LocalApplicationData}/x/y.log"
但这会导致文件被写入c:\x\y.log,而不是%windir%\ServiceProfiles\NetworkService\AppData\Local\x\y.log,正如我所期望的在NETWORK SERVICE 帐户下运行的asp.net/IIS。
从 Web 应用程序检查 Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 的值会产生一个空/null 字符串,这至少可以解释为什么我的日志最终会出现在根目录中。
所以真的有两个问题:
我们有在NETWORK SERVICE 帐户下编写和运行的服务,可以正确解析此路径。 asp.net/IIS 有什么特别之处,以至于这个特殊文件夹没有返回值?
鉴于我的 asp.net 进程在 NETWORK SERVICE 帐户下运行,哪里是写入日志的安全且明智的地方?
【问题讨论】:
标签: c# asp.net nlog special-folders network-service