Запись в Log4net на C: вместо APPDATA в Windows 2003 - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть веб-приложение .NET, которое должно записывать данные в переменную окружения APPDATA с помощью log4net. На моем компьютере с XP-разработчиком все работает нормально, но при развертывании на сервере Windows 2003 журналы записываются в C: \. Я пытался использовать как сетевую службу, так и собственную учетную запись пользователя (с правами администратора) для запуска пула приложений IIS, и нет никакой разницы.

Конфигурация приложения log4net выглядит следующим образом:

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  <file value="${APPDATA}\appname\log."/>
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <staticLogFileName value="false" />
  <datePattern value="'.'yyyy-MM-dd'.txt'" />
  <maxSizeRollBackups value="14" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date&#9;%-5level&#9;%message%newline" />
  </layout>
</appender>

Я не думаю, что есть проблема с разрешениями на запись, потому что это работает, если я изменю конфигурацию на это:

<file value="c:\Documents and Settings\username\Application Data\appname\log."/>

Кто-нибудь знает, что не так и как это исправить?

1 Ответ

0 голосов
/ 07 сентября 2011

APPDATA требует, чтобы был создан профиль пользователя.Это не относится к учетной записи сетевой службы.Если вы запускаете пул приложений с явным идентификатором, я полагаю, что для создания профиля для этого профиля потребуется хотя бы один раз войти в систему.

Я предлагаю вам не полагаться на существование профиля пользователя ввеб-приложения и выберите другое местоположение для файлов журнала.

...