我正在使用 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
像我所期望的那样在帐户下运行 asp.net/IIS NETWORK SERVICE
。
从 Web 应用程序检查值Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
会产生一个空/空字符串,这至少可以解释为什么我的日志最终会出现在根目录中。
所以真的有两个问题:
我们有在NETWORK SERVICE
帐户下编写和运行的服务,可以正确解析此路径。asp.net/IIS 有什么特别之处,以至于这个特殊文件夹没有返回值?
考虑到我的 asp.net 进程在帐户下运行,哪里是一个安全且明智的写入日志的地方NETWORK SERVICE
?