Здравствуйте, AndreyFil, Вы писали:
AF>Можно как-нибудь получить все сессии (коллекцию), которые есть в данные момент и обработать данные содержащиеся в них?
0) HttpContext.Current.ApplicationInstance
1) HttpApplication.Modules // находишь SessionStateModule
2) Получаешь через reflection SessionStateModule._store. Он реализует интерфейс ISessionStateStore. Именно через него (метод Get) можешь получить сессию,
Вся проблема в том, чтобы получить эти ключи (идентификаторы сессий). В первой случае можно пробежать как по IEnumerable и получить IDictionaryEnumerator. Соответсвенно отмести все ключи, которые не начинаются с "System.Web.SessionState.InProcSessionState"
Во втором несколько сложнее. Ключи храняться в этом сервисе и вряд ли он так просто отдаст эти значения. Так что тебе самому придется перехватывать Id сессий через свой модуль и каждый раз их проверять.
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, AndreyFil, Вы писали:
AF>>Можно как-нибудь получить все сессии (коллекцию), которые есть в данные момент и обработать данные содержащиеся в них?
M>Если нужно InProc сессии, то M>
M>0) HttpContext.Current.ApplicationInstance
M>1) HttpApplication.Modules // находишь SessionStateModule
M>2) Получаешь через reflection SessionStateModule._store. Он реализует интерфейс ISessionStateStore. Именно через него (метод Get) можешь получить сессию,
M>
M>Вся проблема в том, чтобы получить эти ключи (идентификаторы сессий). В первой случае можно пробежать как по IEnumerable и получить IDictionaryEnumerator. Соответсвенно отмести все ключи, которые не начинаются с "System.Web.SessionState.InProcSessionState"
M>Во втором несколько сложнее. Ключи храняться в этом сервисе и вряд ли он так просто отдаст эти значения. Так что тебе самому придется перехватывать Id сессий через свой модуль и каждый раз их проверять.
Я нельзя рассказать более подробно про State Server.
Просто у меня получается, что два разных приложения хранят сессии в одном месте.
Можно как-нибудь одно из приложений получить полный список сессий?
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, AndreyFil, Вы писали:
AF>>Я нельзя рассказать более подробно про State Server.
M>Подробнее функции SessionNDXXX
AF>>Просто у меня получается, что два разных приложения хранят сессии в одном месте.
M>Вообщем, если ты не хочешь замарачиваться, делай все через SQL Server.
AF>>Можно как-нибудь одно из приложений получить полный список сессий?
M>Nут как бы есть одна загвоздка. Список идентификаторов сессий ты не получишь никак. Только если делать махинации русками как я уже описывал.
Насколько я понимаю, State Server был задуман как хранение общих ресурсов.
Не понятно, как тогда к ним обращаться.
К тому SQL Server и State Server вроде является реализацией одного и того же, толоко разными методами.
А как тогда это сделать через SQL?
Здравствуйте, AndreyFil, Вы писали:
AF>Насколько я понимаю, State Server был задуман как хранение общих ресурсов.
Нет. Для того, чтобы повысить надежность системы. Данные не хранятся в том домене, которые время от времени уничтожается (или сессия заканчивается).
AF>Не понятно, как тогда к ним обращаться.
Как же не понятно, никак Все само должно автоматом заноситься когда ты работаешь с объектом HttpSessionState.
AF>К тому SQL Server и State Server вроде является реализацией одного и того же, толоко разными методами.
Ну, это смотря что ты по этим понимаешь
AF>А как тогда это сделать через SQL?
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, AndreyFil, Вы писали:
AF>>Насколько я понимаю, State Server был задуман как хранение общих ресурсов.
M>Нет. Для того, чтобы повысить надежность системы. Данные не хранятся в том домене, которые время от времени уничтожается (или сессия заканчивается).
AF>>Не понятно, как тогда к ним обращаться.
M>Как же не понятно, никак Все само должно автоматом заноситься когда ты работаешь с объектом HttpSessionState.
AF>>К тому SQL Server и State Server вроде является реализацией одного и того же, толоко разными методами.
M>Ну, это смотря что ты по этим понимаешь
AF>>А как тогда это сделать через SQL?
M>Вот тут я описывал что как делать. http://rsdn.ru/mag/0603/InsideASPNET.XML
M>зы Квоть поменьше.
Понятно.
А можно тогда как-нибудь еще синхронизировать работу двух приложений?
Может можно сделать, чтобы у них работа с Application была синхронной?
Здравствуйте, AndreyFil, Вы писали:
M>>зы Квоть поменьше.
AF>Понятно.
Что понятно? Квоть поменьше — это значит удаляй текст предыдущего сообщения, который не отражает смысловой нагрузки в следующем ответе.
AF>А можно тогда как-нибудь еще синхронизировать работу двух приложений? AF>Может можно сделать, чтобы у них работа с Application была синхронной?
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, AndreyFil, Вы писали:
AF>>Можно как-нибудь получить все сессии (коллекцию), которые есть в данные момент и обработать данные содержащиеся в них?
M>Если нужно InProc сессии, то M>
M>0) HttpContext.Current.ApplicationInstance
M>1) HttpApplication.Modules // находишь SessionStateModule
M>2) Получаешь через reflection SessionStateModule._store. Он реализует интерфейс ISessionStateStore. Именно через него (метод Get) можешь получить сессию,
M>
А нельзя более подробно про reflection SessionStateModule._store.
Не понятно что это такое и как оно работает.
M>Вся проблема в том, чтобы получить эти ключи (идентификаторы сессий). В первой случае можно пробежать как по IEnumerable и получить IDictionaryEnumerator. Соответсвенно отмести все ключи, которые не начинаются с "System.Web.SessionState.InProcSessionState"
M>Во втором несколько сложнее. Ключи храняться в этом сервисе и вряд ли он так просто отдаст эти значения. Так что тебе самому придется перехватывать Id сессий через свой модуль и каждый раз их проверять.
Здравствуйте, mikа, Вы писали:
M>Здравствуйте, AndreyFil, Вы писали:
AF>>А можно тогда как-нибудь еще синхронизировать работу двух приложений? AF>>Может можно сделать, чтобы у них работа с Application была синхронной?
M>Web Farms
Где-нибудь есть описание этой штуки?
Или если не сложно, можешб сказать как это сделать через Web Farms (в кратце ).