Пользовательская реализация ведения журнала NServiceBus с исключениями AsyncLocal - PullRequest
0 голосов
/ 04 марта 2020

У нас есть собственная реализация ведения журнала для NServiceBus, которая добавляет свойства в журналы; это делается путем сохранения его в объекте IDictionary, который управляется классом AsyncLocal.

Когда мы добавляем:

NServiceBus.Logging.LogManager.Use<OurCustomFactory>();

К услуге мы сталкиваемся с исключениями The given key was not present in the dictionary, Object reference not set to an instance of an object и Unable to cast object of type 'System.String' to type 'System.Object[]'; это, я думаю, связано с тем, что разные потоки обращаются к нашему словарю и изменяют его.

Я нахожусь в конце кода; Я попытался обернуть его в замки, и это не сработало, я попытался поиграться с кодом async / await, чтобы не ожидать ничего ожидаемого; Я даже удалил часть кода, который добавляет свойства, но это все еще имеет эффект.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...