簡體   English   中英

“ EventSourceException”沒有每個日志的詳細信息,但日志本身仍然通過

[英]“EventSourceException” with no details on every log, but the log itself still comes through

所以我正在使用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);
}

這是初始化監聽器的方式:

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()不會GetNewActivityId()異常
  • 執行WriteEventWithRelatedActivityId(... )時,異常會顯示在輸出窗口中,但該異常不會冒泡;它似乎是在基類中處理的。

原來,

  • 我將相關的活動ID用作了預期以外的用途
  • 為了使其正常工作,必須在事件屬性中指定一個EventOpCode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM