Попытка сделать веб-метод асинхронным

Проект, над которым я сейчас работаю, включает в себя MS SQL Server и веб-службы ASP.net, которые используют переменные сеанса. По-видимому, это приводит к тому, что вызовы клиента выполняются последовательно. Я хочу убедиться, что эти методы выполняются асинхронно.

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

Прежде чем я углублюсь непосредственно в это, мне нужно знать, смогу ли я получить такое же понимание асинхронных операций для веб-службы, если я настрою SQL Server для хранения сеанса.

Могу я ?


person TWickz    schedule 04.07.2012    source источник


Ответы (1)


Извините, что говорю это, но единственный способ асинхронно выполнить ваш код и использовать переменные сеанса - это сделать ваше полностью индивидуальное решение для сеанса - и я имею в виду полностью индивидуальное и полностью отключить сеанс asp.net.

Основные советы по проведению сеанса:

  1. У вас есть один файл cookie, связанный с данными пользователей
  2. Данные находятся в одной таблице в вашей базе данных.
  3. Вы создаете настраиваемые поля в этой таблице для каждого сеанса и избегаете Словаря‹>, чтобы сохранить их.
  4. Вы работаете с грязным чтением, последняя запись выигрывает
  5. Вы читаете и записываете только те переменные сеанса, которые вам нужны каждый раз (не все вместе)
  6. Каждая строка имеет дату истечения срока действия и использует, как и MS, планировщик на SQL для удаления старых сессий.
  7. Загрузить сеанс на OnPreInit, сохранить только то, что изменилось на OnUnload
  8. Полностью отключив сеанс, вам нужно заблокировать с помощью кода Mutex, который теперь работает нормально, потому что сеанс выполняет синхронизацию без уведомления, но без блокировки сеанса может выполняться два раза, например, новая вставка в вызовы базы данных.

относительный:

Веб-приложение заблокировано при обработке другого веб-приложения при совместном использовании одного и того же сеанса
Какие счетчики производительности полезны для выявления узких мест ASP.NET?
Полная замена сеанса ASP.Net

чтобы ответить и на этот вопрос if I configure SQL Server to store the session ? сеанс все еще заблокирован, а остальные запросы заблокированы. Если у вас сессия на SQL сервере или на другом носителе, то не меняйте способ работы, только место сохраняемых данных.

person Aristos    schedule 04.07.2012
comment
@TWickz Я все это делаю :) это не так сложно, всего несколько дней. - person Aristos; 05.07.2012