所以我正在使用 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(...
但异常没有冒泡;它似乎在基类中处理。