Как избежать множественного доступа пользователей в 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 для приложения и передаете идентификатор пользователя в качестве параметра для любых запросов, которые в нем нуждаются.