Могут ли несколько пользователей совместно использовать экземпляр HttpApplication? - PullRequest
2 голосов
/ 06 марта 2011

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

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

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

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

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

Ответы [ 2 ]

5 голосов
/ 06 марта 2011

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

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

2 голосов
/ 06 марта 2011

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

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

Cache Object

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

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

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

...