170 похожих чатов

Всем доброго времени суток, возник такой вопрос. Как можно внутреннюю

инфу из медиатора передать в ExceptionMiddleware?
Точнее, есть внутренние переменные (Ids) которые присваиваются каждому запросу, при возникновении исключения мне бы их как-то достать (внутри ExceptionMiddleware), вот не могу придумать как именно это сделать

9 ответов

12 просмотров

А кто присваивает эти переменные запросу?

Sergey- Автор вопроса
Oleg Safonov
А кто присваивает эти переменные запросу?

До передачи запроса в медитр и попадания его в нужных хэндлер, есть несколько классов с интерфейсом IPipelineBehavior, вот там как раз и происходит присваивание нужных ids

Sergey- Автор вопроса

Да, у меня была мысля пихать эти ids в HttpContext, а потом доставать. Но желание напрямик вытащить данные которые присвоились в IPipelineBehavior в случае exception'a, было бы куда лучше, но мне кажется в этот момент процесс уже удаляется и его нет

Sergey
Да, у меня была мысля пихать эти ids в HttpContext...

Наверное и и неправильно там в httpContext лезть. А куда пишется идентификатор этот вообще, представим, что я нахожусь в PipelineBehavior, как получить доступ к идентификаторук?

Sergey- Автор вопроса

О, всё, спасибо большое

Sergey
О, всё, спасибо большое

Вообще, мы у себя делали так. По идее один запрос контроллера - это один вызов медиатора. Мы брали в миддлеваре var operation = $"{controllerName}+{actionName}"; Помещали это в logger.BeginScope(operation); и потом при записи в лог это попадает в структурный лог Ну тут нужно настраивать логгер

Sergey- Автор вопроса
Oleg Safonov
Вообще, мы у себя делали так. По идее один запрос ...

У меня есть такой логгер, но это логгер запроса. А при том объеме что есть проблемно вытащить из какого запроса прилетел exception

Sergey
У меня есть такой логгер, но это логгер запроса. А...

запрос - это в терминах медиатора или http?

Sergey- Автор вопроса
Oleg Safonov
запрос - это в терминах медиатора или http?

В терминах http. На самом деле я и в EceptionMiddleware его тоже дублирую, чтобы можно было быстрее составить подобный запрос на роут. Но вот OperationId нужен для того, чтобы отследить все поэтапные шаги которые выполнялись в медиаторе

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта