Нет разрешения на запись на диск в Windows Server 2008 из приложения .NET с log4net

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

Он отлично работает на моем компьютере для разработки, но когда я помещаю сборку на другой компьютер с Windows Server 2008 (который также отличается от сервера, на котором работает служба, которую я проверяю), программа не создает файл журнала.

Я запустил его из учетной записи в группе «Администраторы», попытался поместить его в разные каталоги на сервере, запустил «От имени администратора», дал все права доступа к папке всем группам пользователей на сервере, но по-прежнему не получил журнала файл.

Не получайте сообщений об ошибках и событий в журнале событий.

это мой log4net conf. настройки:

<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
  <file value="MyServiceLog.txt" />
  <appendToFile value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
  </layout>
</appender>
<root>
  <level value="ALL" />
  <appender-ref ref="FileAppender" />
</root>


person alex440    schedule 18.07.2013    source источник
comment
Вы проверили журналы на сервере, чтобы узнать, выдает ли приложение какие-либо ошибки?   -  person Logarr    schedule 19.07.2013
comment
да. Я проверил журналы приложений и безопасности, ошибок не было, да и записей об активности приложения не было. Хотя я знаю, что процесс запущен точно, я вижу это окно.   -  person alex440    schedule 19.07.2013
comment
Если приложение не может писать на сервер, оно должно генерировать исключения, которые должны быть видны в окне вашего приложения.   -  person Logarr    schedule 19.07.2013
comment
может быть, log4net съедает исключения ... есть ли способ сказать ему, чтобы исключить исключения? может я сам попробую file.write () посмотреть, не случится ли что-нибудь ...   -  person alex440    schedule 19.07.2013
comment
Ах, это хорошее замечание. Посетите эту страницу и найдите Как включить внутренний журнал log4net отладка?   -  person Logarr    schedule 19.07.2013
comment
Вы пробовали ловить исключения и закидывать их в консоль? Затем вы можете запустить приложение и передать результат в текстовый файл и посмотреть, что оно выдает.   -  person Mark Micallef    schedule 19.07.2013
comment
Я просто сдался и написал в файл с System.IO.File.WriteAllText (LOG_PATH, text) - хорошо работает везде. Должна быть какая-то проблема с Log4net. Он также не работал на моей машине из каталога, отличного от каталога, в который его поместил компилятор.   -  person alex440    schedule 21.07.2013
comment
Похоже на ИТ-проблему - пользователь, запускающий процесс, не имеет права писать в этот каталог, или пользователь, которого вы используете, не определен как администратор локального компьютера.   -  person Henry Aloni    schedule 05.09.2015


Ответы (1)


Вы должны указать имя папки в:

<file value="MyServiceLog.txt" />

Измените его на:

<file value="c:\dirIown\MyServiceLog.txt" />

чем убедитесь, что вы предоставили доступ пользователю на c:\dirIown

person Peter    schedule 29.07.2013
comment
пробовал ставить в разные директории. в конце концов я сделал это сам с помощью file.write () .. - person alex440; 31.07.2013