Является ли это предположение правильным?
Нет, это предположение не верно и есть свидетельство для него.Единственный надежный механизм хранения по запросу в ASP.NET - HttpContext.Items
.
Никогда не используйте [ThreadStatic]
поля для хранения значений по запросу в приложении ASP.NET.Например, если у вас есть асинхронный контроллер, вы вполне можете заставить движок отрисовать один запрос из пула потоков, чтобы начать обслуживать запрос, затем инициировать асинхронную операцию, основанную на IOCP (порт завершения ввода / вывода), и, наконец, нарисовать другой поток избассейн, чтобы закончить запрос.Таким образом, вы можете иметь 2 разных потока, обслуживающих один и тот же HTTP-запрос.
Абсолютно никогда не полагайтесь на тот факт, что HTTP-запрос будет обслуживаться одним и тем же потоком.
Это может быть правдой в некоторых случаях для синхронных запросов, но помните, что это просто деталь реализации.Это может измениться без какого-либо уведомления от одной версии .NET к другой.Вы никогда не должны полагаться на это и никогда не использовать [ThreadStatic]
в ASP.NET.Это может сильно укусить тебя.