2013-06-20 2 views
0

У меня есть приложение asp.net, которое может (теоретически) развертываться на нескольких серверах.Limit asp.net open session

В рамках механизма лицензирования я хотел бы ограничить количество открытых сеансов по всему миру.

т. Е. Общее количество открытых сеансов на всех серверах не может превышать определенную сумму (сумма зависит от лицензирования).

Как я могу это достичь? У меня нет проблем с использованием 3-й компоненты сторонних (бесплатные или платные)

некоторыми ограничениями:

  1. Любой сервер может быть остановлен в любое время.
  2. я должен предположить, что сервера не в сети закрытой внутренней сети (т.е. не за пределами интернета)

ответ

0

пожалуйста, проверьте ответ под этим thread. это объясняет ограничение один сеанса для каждого пользователя, но вы можете изменить его в соответствии с вашими потребностями

+0

Спасибо, но это решение только для одного сервера. Когда у меня есть несколько, у меня есть словари приложений/сеансов, которые необходимо синхронизировать между собой на нескольких серверах. – talbenmoshe

+0

Как насчет использования таблицы базы данных? вы можете отслеживать открытые сеансы в общей таблице базы данных. –

0

Вы можете использовать Application объект, чтобы сохранить количество открытых сессии и использовать Application.Start и session.start события global.asax управлять этим количеством и манежем открытого количества сеансов.