Вызов веб-службы с помощью Query Ajax зависает - PullRequest
0 голосов
/ 27 октября 2010

Прежде чем я начну публиковать тонну кода, я думаю, что смогу объяснить мою ситуацию более логично.У меня есть восемь выпадающих страниц на странице, заполняемой одинаково, за исключением того, что они используют разные хранимые процедуры.Те, которые возвращают МНОЖЕСТВО строк (около 44000, но каждая строка составляет в среднем около 5 символов), - это те, которые не работают.

Я использую вызовы веб-службы для получения данных.Вызовы сервиса вызываются с помощью JQuery ajax.

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

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

Есть ли какая-то причина, по которой эти вызовы просто зависают?У меня есть

<httpRuntime  executionTimeout="10000" maxRequestLength="3048576" />

Мне кажется, что, хотя это может быть медленной или плохой идеей, это все еще возможно!

Я опубликую свой код, если потребуется.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2010

Это зависало, потому что клиент так долго заполнял список.Этот вопрос объясняет эффективный способ заполнения выбора: самый * эффективный * способ заполнения выбора с помощью Jquery ajax

0 голосов
/ 28 октября 2010

Не понятно, почему запрос просто зависает.У вас есть какое-то сообщение об ошибке?Если нет, то, возможно, стоит использовать Firebug, чтобы посмотреть ответ от сервера, вызовы Ajax должны появиться на вкладке «Консоль» (убедитесь, что у вас установлен параметр «Показать XMLHttpRequests»), и вы сможете развернуть ответдля неудавшихся запросов оттуда.

Похоже, вы установили таймаут ASP.NET.Может быть, здесь вступает в действие отдельный тайм-аут IIS, но я только догадываюсь здесь.

Единственное, что я хотел бы добавить, это то, что если вы используете веб-сервисы ASP.NET для извлечения данныхпри работе с большими ответами время, затрачиваемое на сериализацию ответа в XML, может быть значительным, поэтому даже если запрос к базе данных выполняется за 2 секунды, серверу может потребоваться намного больше времени для возврата этих данных через веб-службу.И тогда браузеру потребуется немало времени для его десериализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...