Я пытаюсь использовать log4net для записи в журнал событий клиента в IIS7 в Windows Server 2008 с пакетом обновления 1 (SP1). Однако учетная запись, похоже, не имеет доступа к записи в журнал событий. У кого-нибудь есть предложения?Запись в журнал событий в ASP.NET в Windows Server 2008 IIS7
ответ
Проблема, вероятно, ваш источник событий. Вам необходимо создать источник событий, прежде чем вы сможете записать его в журнал событий (если нет, объект журнала событий пытается автоматически создать его для вас «автоматически» при первом входе в журнал).
Для создания источника журнала событий вам необходимо укрепить права доступа. В некоторых моих веб-приложениях я поставил код для создания источника события в мою настройку (настройка выполняется как администратор, поэтому я всегда гарантированно могу создать источник).
Вам просто нужно создать источник один раз. После этого ваше приложение ASP.Net должно иметь достаточные разрешения для записи записей с указанием источника (или источников), который вы создали.
Вы можете использовать EventLogInstaller в своей настройке для создания источника или просто написать небольшую утилиту для вызова EventLog.CreateEventSource() в качестве администратора.
Я покажу оба способа:
// You would do this one from within an Installer class in a setup:
private void InstallEventLog()
{
EventLogInstaller logInstaller;
//Create an instance of an EventLogInstaller.
logInstaller = new EventLogInstaller();
//Set the source name of the event log.
logInstaller.Source = "TheEventSourceName";
Installers.Add(logInstaller);
}
Метод 2: просто позвоните CreateEventSource раза в качестве администратора (вы можете поместить следующий код в консольном приложение, например, и запустить приложение консоли как админ
EventLog.CreateEventSource("TheSourceName", "Application");
Бонус: Если Powershell установлен на вашем сервере, вы можете сделать это из командной строки Powershell: (Убедитесь, что вы работаете в Powershell в качестве администратора)
[system.Diagnostics.EventLog]::CreateEventSource("SourceName", "Application")
Hop, который помогает
Дайте разрешение ASPNET журналу событий.
Выполнить -> Regedit -> Просмотр в
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\Eventlog
правой кнопкой мыши выберите разрешения и дать ASPNET счета полный контроль
Это, вероятно, плохая идея, если вы распространяете свое приложение, есть администраторы ИТ, которые не смогут изменять параметры безопасности по умолчанию. Вы должны иметь возможность играть в песочнице. –
Не уверен, почему это так сильно проголосовало. Он может не масштабироваться или даже быть приемлемым для производства, но это хороший ответ, в котором конкретно говорится, что такое разрешение, и как его подавать. –
+1 Потому что ответ на самом деле полезен и не заслуживает того, чтобы быть в -2 ... –
Я думаю, что более безопасный вариант хороший пример @Michael Kniskern является:
смерзаться ...
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog \ your_new_application_log
Дайте полный контроль только для конкретного журнала приложений, созданного для целей вашего приложения (в этом примере щелкните правой кнопкой мыши ваш_new_application_log и установите для него разрешения). После создания нового имени журнала он появится в реестре, вложенном в узел журнала событий, как указано выше.
IIS 8 Разрешение решения ответ
Я ленив и не создать специальный журнал в моем коде, вместо этого я использовал:
System.Diagnostics.EventLog.WriteEntry("MyAppName", "Bla Bla SQL ERROR: "+sx.Message);
Просто, чтобы завершить ответ Майкла В IIS8 пользователь использовал IIS при запуске кода на стороне сервера: IIS_IUSRS
(на самом деле это более сложно, поскольку в IIS_IUSRS есть виртуальные учетные записи, но они получают разрешения от этой учетной записи, см. форму IIS_IUSRS and IUSR permissions in IIS8).
Этот пользователь требует только разрешение на чтение этого узла реестра:
HKLM\CurrentControlSet\System\Services\Eventlog\Security
Причина этого заключается в том, что, когда новый источник журнала записывается, прежде чем создавать его, система хочет, чтобы проверить, что она Безразлично» t, поэтому ему необходимо ПРОЧТИТЬ имена источников.
Кроме того, если вы используете iis express визуальной студии, он будет работать под вашими личными учетными данными, поэтому, если у вас нет прав доступа на чтение к узлу реестра выше, вам нужно будет добавить его также при отладке в визуальная студия.
(Если администраторы имеют разрешение на узел, а ваши находятся в этой группе, этого недостаточно, вам нужно запустить визуальную студию «как администратор», которая будет работать только с ярлыка визуальной студии, а не с помощью sln-ярлыка)
Другое примечание. Если компьютер находится в домене и вы не можете найти учетную запись IIS_IUSRS при редактировании разрешений реестра, скорее всего, вы ищете неправильное «местоположение», вместо этого найдите учетную запись в активном каталоге домена локального компьютера)
Обратите внимание, что если в списке отсутствует пользователь IIS_IUSRS, возможно, вы просматриваете пользователей домена - измените местоположения на локальный компьютер. пользователь IUSRS в домене не тот, который вам нужен – thedrs
Также не забудьте перезапустить службу (IIS) – thedrs
Если она по-прежнему не работает, перейдите в свойства вашего пула приложений, выберите дополнительные параметры, затем отметьте «Разрешить 32-разрядные приложения» правда. Моя была ложной, но это помогло другу, так что попробуйте. – thedrs
- 1. Запись/чтение в журнал событий Windows
- 2. Запись в журнал событий Windows Запланированная задание
- 3. log4net: запись в журнал событий на сервере
- 4. SMTP, IIS7 и Windows Server 2008
- 5. Запись событий в журнал событий Windows с использованием Coldfusion
- 6. ASP.NET 1.1, FormsAuthentication и IIS7 (Windows Server 2008 R2 x64)
- 7. windows web server 2008 IIS7 хранит rediricting
- 8. Блокировка операционной системы Windows Server 2008 IIS7
- 9. Windows Forms Журнал событий
- 10. Журнал событий Windows
- 11. Нет категорий в Windows Журнал событий
- 12. Переименование виртуального каталога в Windows Server 2008 (IIS7)
- 13. Стрелки и кнопки исчезли в IIS7/Windows Server 2008
- 14. Экспорт в excel - Проблема на Windows Server 2008 IIS7
- 15. Проблема с длиной URL-адреса в IIS7 (Windows Server 2008)
- 16. Запись в журнал событий с иерархией
- 17. SQL Server 2005 и журнал событий Windows
- 18. Запись в журнал безопасности Windows
- 19. Как написать в журнал событий в Windows Server 2008 с помощью C#?
- 20. Запись сообщений в журнал событий приложений
- 21. Запись в журнал событий Windows с использованием Powershell
- 22. Запись в журнал событий Windows с помощью Delphi
- 23. Регистрация событий на C# в Windows 7/2008 Server
- 24. Windows Server 2008, IIS7 и проверка подлинности Windows
- 25. Запись в журнал событий из драйвера
- 26. Log4net прекратил запись в журнал событий
- 27. PowerShell версия 1.0 - Запись в журнал событий
- 28. ASP.NET APP не может войти в журнал событий Windows
- 29. Журнал событий аудита SQL Server
- 30. Как создать новый журнал в средстве просмотра событий с помощью командной строки? (Windows Server 2008)
+1, я сделал это в режиме powershell. Это было замечательно. –