Могут ли несколько пользователей совместно использовать экземпляр HttpApplication?

Я использовал таблицу в верхней части этой статьи в качестве ссылки. У меня три вопроса:

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

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

3 - Может ли несколько пользователей приложения ASP.NET совместно использовать одноэлементный экземпляр или значение статической переменной? Если так, это происходит по умолчанию?

Спасибо за разъяснение этого.

2 ответа

Решение

Ответ на все шесть ваших вопросов - да.

Состояние пользователя должно храниться в сеансе.

HttpApplication содержит состояние приложения Asp.Net для каждого экземпляра w3svc.exe. Таким образом, для каждого веб-сервера в вашем приложении сохраняется состояние приложения. Если вы используете веб-садоводство, существуют другие проблемы с объектом HttpApplication.

Все пользователи на одном сервере, в одном потоке будут совместно использовать HttpApplication, HttpApplicationState и все значения статических переменных. Когда на сервере запущено несколько экземпляров HttpApplication, одновременные пользователи не будут обращаться к одному и тому же экземпляру этих объектов. Я НЕ рекомендую хранить значения в этих объектах... гораздо лучше использовать объект Cache для хранения значений, которыми вы хотите поделиться с пользователями на сервере.

Cache Object

Объект Cache может принимать зависимости и значения срока действия... это позволит вам контролировать "свежесть" значений, которые вы храните на сервере.

Для каждого пользователя значения должны храниться в объекте Session.

Объект сеанса

Другие вопросы по тегам