Проблема с разрешениями журнала событий log4Net при использовании учетной записи без прав администратора

Вероятно, это не проблема SiteCore как таковая, но я включил ее для полноты картины. У меня sitecore 6.3 работает под IIS7 с использованием настраиваемого идентификатора для пула приложений. Я не могу заставить Sitecore записывать информацию о журналах (используя настройки log4net по умолчанию) в журнал событий. Я последовал совету здесь: http://logging.apache.org/log4net/release/faq.html#Why%20doesn%27t%20the%20EventLogAppender%20work? и хотя он отлично работает, когда Я делаю настраиваемое удостоверение членом группы администраторов, мне нужно найти способ заставить его работать в производственной среде без подобного взлома системы безопасности.

Странно то, что у меня есть MSI, который устанавливает его (работает под учетной записью, являющейся членом группы администратора) и создает для меня правильные ключи реестра в журнале событий, но, несмотря на это, я все еще получаю следующая ошибка, когда я запускаю приложение с использованием пользовательского удостоверения (не будучи членом администраторов).

log4net:ERROR DOMConfigurator: Could not create Appender [EventLogAppender] of type [log4net.Appender.EventLogAppender]. Reported error follows.
System.Security.SecurityException: Requested registry access is not allowed.
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at System.Diagnostics.EventLog.GetEventLogRegKey(String machine, Boolean writable)
at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
at System.Diagnostics.EventLog.DeleteEventSource(String source, String machineName)
at log4net.Appender.EventLogAppender.ActivateOptions()
at log4net.Repository.Hierarchy.DOMHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
The Zone of the assembly that failed was:
MyComputer
log4net:ERROR DOMConfigurator: Appender named [EventLogAppender] not found.

Думая, что я могу сузить его до проблемы с разрешениями реестра, я предоставил всем полные права доступа к следующему разделу и подразделам реестра, но это тоже не сработало: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ eventlog

Пользовательский идентификатор является членом следующих групп:

  • Читатели журнала событий
  • IIS_USERS
  • Пользователи системного монитора

Я также видел следующий вопрос , который, кажется, задает то же самое. В статье Microsoft, похоже, предполагается, что это может быть проблема с ACL в журнале событий, и приводятся примеры того, как вы можете изменить SSDL, но я бы предпочел избегать этого, если это вообще возможно.

РЕДАКТИРОВАТЬ: У меня есть еще один сервер, на котором журнал заполняется нормально. Пользовательский идентификатор был членом администраторов, поэтому я отозвал его и перезагрузился, пытаясь намеренно взломать его, но не могу. Конфигурация идентична на обоих ящиках, и тот же идентификатор используется для запуска MSI, который создает ключи реестра. Запустите procmon на обоих (после выполнения IISReset и повторного развертывания пула приложений), чтобы проверить активность реестра. Странно то, что на работающем поле вы получаете 477 записей name not found для моего источника событий в неправильных местах (Application и другой Custom EventLog "MyCompany"). Нет совпадений для места, где ведется журнал, т.е. "MyCompany \ MyCompany.SiteCore". В то время как на коробке, которая сломана, похоже, что она запрашивает чтение правильного ключа (хотя и всего 6 раз), но затем вы получаете ошибку доступа к реестру Log4Net.

5
задан Community 23 May 2017 в 10:32
поделиться