путаница из-за System.Web.HttpContext.Current - PullRequest
3 голосов
/ 27 февраля 2012

Итак, в коде сервера приложения silverlight я вижу несколько ссылок на System.Web.HttpContext.Current.User.Identity.Name.Вопрос в следующем: если System.Web.HttpContext.Current является статическим свойством, то как получается, что разные одновременные запросы обрабатываются с использованием разных System.Web.HttpContext.Current объектов?

Полагаю, здесь я упускаю что-то простое.

Ответы [ 2 ]

4 голосов
/ 27 февраля 2012

Каждый запрос обслуживается потоком. Иными словами, поток может обслуживать только один запрос за раз.

Теперь HttpContext.Current поддерживается CallContext.HostContext, что является эффективно потоковым статическим свойством (свойство getter / setter работает на каждый поток 1010 * базис).

Получает или задает контекст хоста, связанный с текущим потоком.

И вот как HttpContext.Current удается всегда возвращать правильный контекст для каждого запроса, даже если несколько запросов обслуживаются параллельно - текущий поток связан с HttpContext, который, в свою очередь, связан с конкретным запросом. 1018 *

0 голосов
/ 27 февраля 2012

Статично, но по текущему запросу.

"Получает или задает объект HttpContext для текущего HTTP-запроса."

см .: msdn- HttpContext.Current Property

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