Я использую 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
.
Проверка значения для Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
в веб-приложении приводит к пустой / нулевой строке, которая хотя бы объясняет, почему мои журналы попадают в корень.
Так что на самом деле два вопроса:
У нас есть службы, написанные и работающие под учетной записью NETWORK SERVICE
, которые правильно разрешают этот путь. Что такого особенного в asp.net/IIS, что для этой специальной папки не возвращается значение?
Где находится безопасное и разумное место для записи журнала, если мой процесс asp.net выполняется под учетной записью NETWORK SERVICE
?