Отключение sessionState приводит к тому, что действия вызываются дважды.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Отключение sessionState приводит к тому, что действия вызываются дважды.

Сообщение Anonymous »

В настоящее время мы больше не используем sessionState, теперь мы полагаемся на файлы cookie с зашифрованными данными, которые мы раньше сохраняли в сеансе.
У нас была эта функция, которая отвечала за сохранение данные в сеансе, но в настоящее время мы передаем только пустую строку в качестве параметра значения.

Код: Выделить всё

        public static void SaveSession(object session_name, object value)
{
HttpContext context = HttpContext.Current;
context.Session.Add(session_name.ToString(), value);
}
В настоящее время это работает нормально (используется пустая строка, пока мы не исправим эту проблему). Но всякий раз, когда я комментирую этот код и устанавливаю для sessionState значение mode="Off" в Web.config, многие мои действия начинают вызываться дважды. И из-за этого он начинает выдавать много ошибок, когда пытается получить что-либо из БД, потому что действие, которое было выполнено первым, открывает БД и делает то, что ему нужно, а тем временем другой поток пытается прочитать то же действие до завершения первого (это не асинхронное действие). Поскольку первый еще не закрыл БД, второй выходит из строя, и это нарушает код. Это пример ошибки, которую я получаю:

Код: Выделить всё

System.InvalidOperationException: 'ExecuteReader requires an open and available Connection. The connection's current state is connecting.'
И когда я проверяю свой SQL-сервер, в этой таблице (

Код: Выделить всё

sys.dm_exec_sessions
), я вижу, что одновременно создается множество сеансов (проверяя столбец session_id), и в конечном итоге оно достигает максимума, и все останавливается. Этого не происходит, когда я оставляю sessionState включенным.
Помните, что все работает, пока я оставляю sessionState включенным и передаю этому действию пустую строку. Ничто другое больше не использует это действие, поэтому, когда я его комментирую, я все еще могу скомпилировать проект и все остальное. Будем очень признательны за любые идеи!

Подробнее здесь: https://stackoverflow.com/questions/790 ... lled-twice
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»