#biztalk #event-log
#biztalk #журнал событий
Вопрос:
Когда я пытаюсь выполнить оркестровку с чем-то вроде EventLog.WriteEntry("MyEsb", "Msg");
в форме выражения, я получаю исключение The source was not found, but some or all event logs could not be searched. To create the source, you need permission to read all event logs to make sure that the new source name is unique. Inaccessible logs: Security.
Почему? Я использую 64-битную версию Win 7, если это имеет какой-либо смысл.
Ответ №1:
Когда вы записываете журнал событий из любого приложения, источник события должен быть уже создан, иначе само приложение попытается создать его перед записью в него. К сожалению, создание источника события — это действие, требующее привилегий локального администратора.
Итак, вы можете сделать две вещи:
- предварительно создайте источник события
- убедитесь, что пользователь, на котором запущен ваш хост biztalk, находится в локальных администраторах (плохо)
Предварительное создание источника события — более удобный вариант. Вы можете сделать это с помощью команды powershell
New-EventLog -LogName "Application" -Source "MyEsb"
Комментарии:
1. Проблема заключалась в том, что у пользователя BizTalk не было доступа на чтение к журналу безопасности, см. Мой ответ.
2. В прошлом я видел, что отсутствие источника события вызывало точную ошибку, указанную в вопросе.
Ответ №2:
Может показаться, что я констатирую очевидное, но получил ли пользователь BizTalk разрешение на запись в журнал событий? То есть учетная запись экземпляра хоста, выполняющего оркестровку.
Вероятно, вы обнаружите, что этого не произошло.
HTH
Комментарии:
1. Это так, но все равно не повезло. Смотрите мой ответ.
Ответ №3:
Наконец-то я нашел решение. Как говорится в ошибке, «Чтобы создать источник, вам нужно разрешение на чтение всех журналов событий, чтобы убедиться, что новое имя источника уникально. Недоступные журналы: безопасность «.Таким образом, несмотря на то, что учетная запись пользователя BizTalk имеет достаточно прав для записи в журнал событий, у нее нет прав на чтение журнала событий журнала безопасности, как указано здесь в примечании в разделе Примечания:
Причина этого требования заключается в том, что необходимо выполнить поиск во всех журналах событий, включая безопасность, чтобы определить, является ли источник события уникальным. Начиная с Windows Vista, пользователи не имеют разрешения на доступ к журналу безопасности; поэтому выдается исключение SecurityException.
Итак, я просто предоставил доступ на чтение HKEY_LOCAL_MACHINESYSTEMCurrentControlSetserviceseventlogSecurity
для пользователя BizTalk, и проблема была решена.
Комментарии:
1. После предоставления моей учетной записи хоста доступа к этому ключу в RegEdit я получаю: «Запрошенный доступ к реестру запрещен». во время выполнения в сообщении журнала событий.