Вызов службы ASMX через Ajax зависает (никогда не завершается) - PullRequest
0 голосов
/ 13 мая 2011

Является ли использование службы asmx для обновления переменной сеанса с помощью вызова ajax проблемой, когда выполняется много вызовов подряд?

У меня есть веб-служба asmx (проект является устаревшим ASP.NET без WCF на уровне веб-приложений), который обновляет переменную сеанса. Существует вызов ajax, который использует этот метод, когда установлен флажок. Это работает, если вы не установите флажки один за другим (что может быть сделано). Вызов ajax зависает (никогда не заканчивается).

Я думаю, что это как-то связано с несколькими запросами, пытающимися обновить переменную сеанса, но я не уверен. Кто-нибудь сталкивался с этим и мог бы дать совет? Примечание: я знаю, что WCF был бы возможным ответом, но мне интересно, есть ли решение, которое не потребует изменения службы asmx на WCF прямо сейчас.

Ответы [ 3 ]

0 голосов
/ 13 мая 2011

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

0 голосов
/ 13 мая 2011

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

0 голосов
/ 13 мая 2011

Является ли использование службы asmx для обновления переменной сеанса с помощью вызова ajax проблемой, когда выполняется много вызовов подряд?

Да, поскольку ASP.NET будет ставить в очередь и выполнять эти запросы последовательно, а не параллельно, поскольку объект сеанса не является потокобезопасным. Если несколько запросов из одного и того же сеанса отправляются какому-либо обработчику ASP.NET, и если этот обработчик выполняет запись в сеанс, он просто ставит эти очереди в очередь.

...