Частные переменные внутри DelegatingHandler, смешивающие значения из других запросовC#

Место общения программистов C#
Anonymous
Частные переменные внутри DelegatingHandler, смешивающие значения из других запросов

Сообщение Anonymous »

У нас есть реализованный DelegatingHandler, который имеет несколько частных переменных, и 2 из них получают значения из параллельных запросов, отличных от их собственных, даже если они не являются статическими переменными

Код: Выделить всё

public sealed class XYZProxyHandler:DelegatingHandler
{
private string _var1;
private string _var2;

protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var token = request.Headers.GetCookies().FirstOrDefault().Cookies.FirstOrDefault(x => x.Name.ToLower() == "access_token").Value;
_var1 = GetVar1(token);
_var2 = GetVar2(token);
Пытался максимально упростить код, включив при этом важный фрагмент кода.
В приведенном выше примере кода в идеале _var1 и _var2 должны получать значения свой собственный запрос, но по какой-то причине они иногда получают значения другого запроса.
У меня есть случаи, когда _var1 получает значение другого запроса, а _var2 получает значение своего собственного запроса, и наоборот.

Я уже сталкивался с подобным поведением, когда статическая переменная используется совместно всеми запросами, но это не статические переменные, и поэтому я не уверен, как это может произойти или связано ли это как-то с Реализация DelegatingHandler.

Я пытался протестировать ее, но не воспроизвел, и работаю над тем же самым с большим количеством вариантов тестовых данных, и это происходит, возможно, 50 раз в месяц. поэтому не очень часто.

Я не уверен, что у меня туннельное зрение и я не вижу чего-то очевидного или бросающегося в глаза.

Подробнее здесь: https://stackoverflow.com/questions/563 ... r-requests

Вернуться в «C#»