Кажется, довольно хорошо документировано, что HttpContext в Blazor будет иметь значение null в фоновом потоке (например, таймере), и это то, что я испытываю. Мне нужно периодически опрашивать экземпляр службы веб-API (URL-адрес хранится в базе данных) для получения обновлений статуса. Проблема заключается в том, что мой клиент с именем httpclient зарегистрирован с помощью специального обработчика сообщений, который получает токены из httpcontext, и это, как ожидается, имеет значение null, когда он запускается по таймеру. У меня есть некоторые возможности в промежуточном программном обеспечении для обработки токенов с истекшим сроком действия, поэтому я хочу использовать этот код, а не получать токен и передавать его в мою службу, которую затем нужно будет обновлять вручную. Чем больше я читаю, тем больше кажется, что рекомендуется не делать что-то подобное в пользовательском интерфейсе. Кажется сумасшедшим, что я не могу разработать облегченный метод, который я мог бы регулярно опрашивать через веб-API, чтобы получать обновления статуса из веб-интерфейса. Может ли кто-нибудь указать мне в правильном направлении? Мой код очень сложен, но если кому-то понадобится, чтобы я собрал небольшой образец, я мог бы сделать это для большего контекста.
Я попытался использовать таймер для вызова моего веб-API с помощью внедренного IHttpContextFactory, чтобы я мог создать именованный клиент с моим URL-адресом из базы данных. Когда я вызываю метод из потока пользовательского интерфейса, он работает нормально, но когда я выполняю метод в обратном вызове при создании экземпляра моего таймера, httpcontext всегда имеет значение null, когда промежуточное программное обеспечение пытается получить токен для вызова веб-API. Я полагаю, что мог бы получить токен в потоке пользовательского интерфейса, а затем передать его своему методу, но эта страница, скорее всего, может быть доступна дольше, чем истечет срок действия токена, поэтому я бы предпочел использовать код обновления моего токена.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ound-threa