У меня есть веб-службы ASMX, работающие как «сетевое обслуживание». Я хочу, чтобы каждый раз, когда вызывается веб-служба (и когда происходят ошибки), я могу писать в журнал событий.Как я могу написать в журнал пользовательских событий из веб-службы ASMX, работающей как служба сети?
Я создал новый журнал событий (MyLog), используя следующий код работает в качестве администратора на сервере Windows 2008 машины:
if (!EventLog.SourceExists(APPLICATIONNAME))
{
EventLog.CreateEventSource(APPLICATIONNAME, EVENTLOGNAME);
}
EventLog.WriteEntry(APPLICATIONNAME, "Service started", EventLogEntryType.Information);
где APPLICATIONAME является «MyApp» и EVENTLOGNAME является «MyLog» (имена изменены для защиты невинных людей).
Во-первых, он создает новый журнал событий «MyLog» (проверяется с помощью eventvwr), но его содержимое совпадает с содержимым журнала событий приложения. Я ожидал получить пустой журнал незащищенных событий.
Во-вторых, когда я пытаюсь написать на вновь созданный журнал событий внутри метода Application_Start, используя следующий код:
EventLog.WriteEntry(APPLICATIONNAME, "Service started", EventLogEntryType.Information);
Я получаю SecurityException типа System.Diagnostics.EventLogPermission.
Я попытался изменить списки управления списком кустов MyLog в реестре (как предложено on MSDN), но безрезультатно.
Я предпочитаю не изменять личность веб-службы и не изменять списки управления доступом в журнале событий приложений, которые используются другими приложениями в системе.