Aravindba Ответов: 1

Как избежать множественного доступа пользователей в ASP.NET


Всем привет,
В нашем веб-приложении мы тестировали так ,если от 5 до 10 пользователей одновременно нажали кнопку входа в систему, то от 4 до 6 пользователей только могут войти в систему, другой пользователь получает ошибку тайм-аута , то же самое, как если бы делать ту же операцию в то же время с 10 пользователями, то несколько пользователей только успех , другие получат ошибку,
Так как же решить эту проблему в asp.net -что ?

Что я уже пробовал:

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


С уважением,
Аравинд

Patrice T

какое сообщение об ошибке ?

F-ES Sitecore

Вам нужно посмотреть на свой код и понять, почему это происходит. Это могут быть тупики базы данных, так что проверьте и это (google how to monitor deadlocks on your specific database). Мы не можем сделать это за вас, тем более что вы не разместили никакого соответствующего кода.

Aravindba

Привет,
Это просто выберите запрос, код "SELECT * from AdminTable" и в каком состоянии мы передаем имя пользователя и пароль, это запрос при входе в систему, если 5 пользователей нажимают кнопку входа в то же время нет проблем, если от 10 до 20 пользователей нажимают кнопку , то от 10 до 15 могут войти в систему ,баланс 5 пользователей получают ошибку .

скриншот ошибки - http://prntscr.com/mhtl85

Richard Deeming

Это звучит так, как будто вы не закрываете / не избавляетесь от своего SqlConnection объекты правильно. Вы всегда должны обернуть соединение в один Using блок[^] чтобы гарантировать, что соединение будет возвращено в пул, когда вы закончите с ним.

Кроме того, иметь отдельный логин SQL для каждого пользователя звучит как плохая идея. Обычно вы используете один логин SQL для приложения и передаете идентификатор пользователя в качестве параметра для любых запросов, которые в нем нуждаются.

1 Ответов

Рейтинг:
0

Maciej Los

Если я вас хорошо понимаю...

Если вы хотите запретить доступ пользователю сверх лимита, вы должны хранить данные о зарегистрированных пользователях, например, в базе данных. Тогда вы сможете проверить, сколько пользователей заходят на ваш сайт в данный момент. Как только пользователь выходит из системы, вы должны уменьшить количество пользователей, вошедших в систему, чтобы предоставить доступ другому пользователю.

Удачи вам!


Aravindba

Привет, да мы ограничиваем пользователя, но мы показываем msg, если достигаем предела , но при входе в систему как 10 пользователей одновременно (мы тестировали с 20 сотрудниками для тестирования) половина пользователей получает ошибку, если снова попытаться войти без проблем , сбалансированные пользователи могут успешно войти в систему.