Windows Server 2008 не позволяет мне создавать источник журнала, говоря, что он уже существует (это не так)
У меня есть небольшое приложение winforms, которое создает новый источник журнала событий.
Я запускаю его как администратор для повышенных привилегий.
Код проверяет, не существует ли указанный журнал событий, а затем создает источник. На моем компьютере с Windows 7 это работало нормально, но когда я запускаю приложение на Windows Server 2008 R2 SP1, оно говорит мне, что источник уже существует. Я знаю, что это не так, потому что а) это свежая установка Windows Server 2008 R2, и б) я добавил код, чтобы вернуть список всех источников журналов, а мой новый не был в списке.
Я знаю, что "первые 8 символов" являются значимыми, и я убедился, что мои исходные имена были полностью уникальными.
Вот супер-простой код (конечно, я пытаюсь / ловит это):
if (!EventLog.SourceExists(sourceName))
{
EventLog.CreateEventSource(sourceName, logName);
}
Может кто-нибудь сказать мне, почему Windows Server 2008 лжет мне?
1 ответ
Локальные (или доменные) администраторы - не самые мощные учетные записи в Windows.
Есть другие учетные записи, которые имеют более высокий (хотя и более ограниченный) доступ.
SourceExists()
вернет false, если он выйдет, но у вас нет прав доступа, чтобы узнать об этом, и администратору вполне может быть отказано в доступе к чему-либо.
Кроме того, есть зарезервированные названия вещей в нечетных местах, которые могут сбить вас с толку. Создание папок с именами CON COM или LPT, которые вызывали странные проблемы на сервере 2003.
Таким образом, существует также целый ряд причин, по которым CreateEventSource() может завершиться с ошибкой - копаться и во внутренних исключениях, часто они предоставляют критические детали.
Какое имя источника журнала событий вам не удавалось?
Вы бы разместили стек исключений?