"EventSourceException" без подробностей о каждом журнале, но сам журнал все еще проходит через

Итак, я использую SLAB, и у меня есть слушатель базы данных, выходящий из базы данных. Я тестирую с одним методом на источнике событий. У меня проблема в том, что журнал вставляется в базу данных так, как я этого хочу, но я также получаю журнал исключений перед каждой записью

введите описание изображения здесь В моем окне вывода он говорит то же самое, "EventSourceException". Мне трудно понять, что такое исключение, не говоря уже о том, как это исправить.

Вот метод источника события:

[Event(2, Message = "ACCESS_ADMIN",
    Level = EventLevel.LogAlways,
    Keywords = Keywords.AdminAccess)]
public void LogAdminAccess(string userInfo, string resource, string clientIpAddress, bool succeeded)
{
    SetCurrentThreadActivityId(GetNewActivityId());
    WriteEventWithRelatedActivityId(2, GetRequestId(), userInfo, resource, clientIpAddress, succeeded);
}

Вот как инициализируется слушатель, inproc:

var dbSemanticLogListener = SqlDatabaseLog.CreateListener(
    "MyComponent",
    PayliteRegistry.MainDatabaseConnectionString);

dbSemanticLogListener.EnableEvents(
   AprivaPciAuditEventSource.Log,
   EventLevel.LogAlways, 
    MyEnum.Keywords.AccountModified |
    MyEnum.Keywords.AdminAccess |
    MyEnum.Keywords.DatabaseAccess |
    MyEnum.Keywords.ApplicationStateChange);

И звонок в логгер:

MyLoggerClass.Log.LogAdminAccess(
    userInfo, 
    request.RequestUri.AbsolutePath, 
    request.GetClientIpAddress(), 
    true);

Любые идеи о том, в чем может быть проблема или, по крайней мере, как добраться до реального исключения?

Другие биты не показаны

  • Этот класс EventSource запечатан
  • Я прошел и убедился, что методы GetNewActivityId() а также GetRequestId() не бросаем исключения
  • Исключение появляется в окне вывода, когда WriteEventWithRelatedActivityId(... выполняется, но исключение не всплывает; кажется, что он обрабатывается в базовом классе.

1 ответ

Решение

Оказывается, что

  • Я использую идентификаторы связанных действий для чего-то другого, чем они были предназначены
  • Чтобы это работало, вы должны указать EventOpCode в атрибуте события.
Другие вопросы по тегам