|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Добрый день. Использую IIS8, приложение ASP.NET MVC 5. На одной из страниц приложения есть форма с набором входных параметров (диапазон дат и еще несколько несущественных). Форма обрабатывается ajax-ом. При выполнении запроса вытягивается некоторый набор данных в json на основании которого строится график на клиенте. Ситуация такова, что при определенном наборе входных данных (при широком диапазоне дат, за несколько лет) запрос может выполняться достаточно долго. Экспериментально установлено, что есть отсечка в 30 секунд. Если запрос выполняется больше 30 секунд ajax завершается ошибкой, если меньше, то все отрабатывает корректно. Использование параметра timeout для $.ajax(...) в клиентском js скрипте никак на эту проблему не влияет. Проблема связана именно с сервером. Причем на локальном хосте под IIS Express все нормально. Запрос отваливается только на рабочем IIS. Очень похожая ситуация описана здесь . Но судя по комментарию она якобы решена параметром timeout в клиентском скрипте, что не помогает на практике. Думаю, где-то есть соответствующая настройка для web сервера, но пока ничего похожего не нашел. Подскажи, может кто-то сталкивался с подобной проблемой? Как можно увеличить это таймаут? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2018, 23:41 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Oleg5555, Можно конечно и увеличить таймаут. Но проблему это не решит. Разбейте данные на порции (пейджинг) и передавайте постепенно блоками. Если сможете дорисовывать график, это будет корректный с точки зрения UX результат. В общем, не в сторону таймаута смотрите, считайте он вам помогает сделать всё правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 11:59 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Это я понимаю, вопрос разбивки данных, оптимизации обработки этого набора это направление для размышления. Но все же хотелось узнать, что это за настройка. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 12:37 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 12:59 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Настройки состояния сеанса не должны быть связаны с этой проблемой. Единственное за что можно было бы зацепиться - это режим состояния сеанса SQL-сервер с параметром таймаута 30 секунд (что-то похожее, по крайней мере по значению параметра). Но эта настройка используется для объектов, хранящихся в состоянии сеанса (которые должны быть сериализуемыми) на уровне SQL. Пробовал для эксперимента менять эту настройку, не помогло. Дело в чем-то другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 13:54 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Oleg5555Это я понимаю, вопрос разбивки данных, оптимизации обработки этого набора это направление для размышления. Но все же хотелось узнать, что это за настройка. Тогда текст ошибки выложите. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 14:04 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Текс ошибки стандартный - "Время ожидания выполнения истекло. Время ожидания истекло до завершения операции, или сервер не отвечает." ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 14:28 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Одно дополнение. Я него ошибся в исходном описании проблемы, под IIS Express тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 14:32 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Всем спасибо. Нашел первоисточник проблемы. Исключение генерировалось не на уровне IIS, а на уровне доступа к данным, на уровне ADO.NET. 30 секунд это ограничение по умолчанию выполнения sql команды. Можно увеличить этот параметр в коде, проблема описана здесь и доки здесь . Попробовал экспериментально поднять значение параметра, все сработало. Над архитектурой и оптимизацией буду еще думать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 14:46 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Oleg5555Текс ошибки стандартный - "Время ожидания выполнения истекло. Время ожидания истекло до завершения операции, или сервер не отвечает." И тип: System.Data.SqlClient.SqlException. Но понадобился день, чтобы понять. Удивительно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 14:57 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Oleg5555Над архитектурой и оптимизацией буду еще думать. Что тут думать? План запроса надо смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 14:59 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Еще раз всем спасибо за комментарии, удивления и "помощь". Тема закрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 15:03 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Oleg5555Над архитектурой и оптимизацией буду еще думать. Чё тут думать? Где-нибудь видели, чтобы какой-нибудь интернет-магазин вываливал на одну страницу вам все сто тысяч товаров, ну.. примерно через минут 5-10 ожидания? Нет? А нафига, я бы даже сказал, нахрена так делать? Это примерно как чуваки, которые на западное смотрят «ух ты», а делают ржавое корыто и довольны. Не делайте так. Делайте по уму, а не через одно место. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 17:09 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Oleg5555и "помощь" Вот я бы желал, чтобы отдельным пациентам, которые приходят к нам на собеседования, оказали хотя бы вот такую помощь. Но что реально удивляет, это вот такая глупая и абсолютно не к месту, ирония. Как будто вам тут все обязаны были, и не угодили. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 17:12 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
skyANAOleg5555Над архитектурой и оптимизацией буду еще думать. Что тут думать? План запроса надо смотреть. Если данных реально много, то план особо не поможет. Я бы порциями сгружал данные на клиента ( если у него конечно памяти хватит) и потом формировал результирующий джейсон. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 17:16 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
big-dukeЯ бы порциями сгружал данные на клиента ( если у него конечно памяти хватит) и потом формировал результирующий джейсон. Даже джипеги пока грузятся отображают изображение с повышением детализации. Ну как можно сегодня не понимать, что данные надо грузить и отдавать порциями.. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 17:18 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
hVostt, Ха, толково, утащу себе идею насчет детализации джипега. спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2018, 17:21 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
big-dukeЕсли данных реально много, то план особо не поможет. Ну ну... И как же график у ТС-а строится-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2018, 23:48 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Заголовок темы мне подходит - поэтому открывать новую не буду. Хотя проблема у меня иная. Возможно суть её зарыта в использовании jQuery Dialog. Возьмем простейший случай: 1. Открываем страницу, например, "Список пользователей" 2. Нажимаем кнопку "Добавить пользователя" - вылезает модальный диалог "Анкета пользователя" 3. Заполняем анкету, жмакаем "Ок" - всё исправно уходит на сервер. Изменим условия: 1. Открываем страницу, например, "Список пользователей" 2. Выжидаем ~1 минуту. 3. Нажимаем кнопку "Добавить пользователя" - вылезает модальный диалог "Анкета пользователя" 4. Заполняем анкету, жмакаем "Ок" - получаем ошибку "Validation failed for one or more entities" (как будто отправлена не заполненная анкета). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 15:49 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Курдль, F12 и теперь добавь логи когда и что идет на сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 15:56 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Petro123, Извиняюсь - я ввел в заблуждение :( На самом деле последовательность такая: 1. Открываем страницу, например, "Список пользователей" 2. Нажимаем кнопку "Добавить пользователя" - вылезает модальный диалог "Анкета пользователя" 3. Заполняем анкету, жмакаем "Ок" - всё исправно уходит на сервер. Изменим условия: 1. Открываем страницу, например, "Список пользователей" 2. Нажимаем кнопку "Добавить пользователя" - вылезает модальный диалог "Анкета пользователя" 3. Выжидаем ~1 минуту. 4. Заполняем анкету, жмакаем "Ок" - получаем ошибку "Validation failed for one or more entities" (как будто отправлена не заполненная анкета). Т.е. провисевшая какое-то время модальная форма "протухает" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 16:47 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
КурдльТ.е. провисевшая какое-то время модальная форма "протухает" Один фиг там смотрите. При коротких транзакциях не должно быть длинных соединений. 2. У вас MVC, значит минимум ajax. Т.е. get, post и переходы по урлам. Но там сами смотрите. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 17:09 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Курдль2. Нажимаем кнопку "Добавить пользователя" - вылезает модальный диалог "Анкета пользователя"как вариант, без модального окна, в тренде веб - переход на страничку /users/new...... Можно так, можно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 17:14 |
|
ASP.NET MVC 5, таймаут для ajax запроса
|
|||
---|---|---|---|
#18+
Petro123Курдль2. Нажимаем кнопку "Добавить пользователя" - вылезает модальный диалог "Анкета пользователя"как вариант, без модального окна, в тренде веб - переход на страничку /users/new...... Можно так, можно так. Если я изменяю тип страницы с модельного на обычный - ясен пень, что все работает по классическому вэбу. Сколько бы страница не провисела (до таймаута сессии) её POST вызывает корректную посылку данных на сервер. А логи я читать не умею :( Валится что-то огромным списком в консоли, но выявить нужное не могу. P.S. А откуда следует, что MVS = повсеместный Ajax? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2018, 10:47 |
|
|
start [/forum/topic.php?fid=18&msg=39684104&tid=1355162]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
129ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 243ms |
0 / 0 |