Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/16: Рейтинг темы: голосов - 16, средняя оценка - 4.81
sa
1

IE дает expired timeout, когда скрипт долго выполняется

12.06.2007, 23:28. Показов 3051. Ответов 8
Метки нет (Все метки)

Именно IE, а не ASP или IIS. Скрипт долго (порядка 20 минут) ждет ответа от SQL , в это время IE у клиента не получает ни байта (хотя начало html-страницы уже получил). А потом сабж. Как бороться?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2007, 23:28
Ответы с готовыми решениями:

Timeout expired
Формирую массивные xml файлы, данные получаю запросами к БД. Иногда выходит исключение: Timeout...

Сообщение - Timeout expired
Делаю Select из консоли управления сервером по полю содержажему дату, пишу where field >=...

Ошибка по timeout expired
Всем доброго дня! Вопрос не совсем связан с разработкой и программированием, но выел мне остатки...

ODBC Timeout expired
аксесс 2000 SQL 2000 в аксесс есть линковананная таблица с сервака. в неё требуется сделать...

8
Sergik
13.06.2007, 10:51 2
А в NN все нормально, или окошко вываливается 'document contain no data'?
Насчет того, что IE не получает ни байта - можно попробовать писать Response.flush после каждой строки. Насчет самой ошибки - ничего подобного не видел, даже самому интересно, а вот насчет 'порядка 20 минут' - это время истечения пользовательской сессии в IIS по-умолчанию, может стоит его побольше сделать попробовать.
3 / 3 / 5
Регистрация: 10.05.2007
Сообщений: 1,616
13.06.2007, 13:23 3
Насколько я знаю есть session timeout, а есть script timeout, если скрипт слишком долго выполняется, то ASP.dll считает, что он завис и прерывает его. В настройках IIS есть этот параметр. Да тебе естественно надо увеличить session timeout если скрипт выполняется больше 20-ти минут и ты хочешь сохранить сессию для пользователя
0
0 / 0 / 0
Регистрация: 10.05.2007
Сообщений: 59
13.06.2007, 14:40 4
Попробуй в ASPe использовать :

Server.ScriptTimeout = NumSeconds, этот таймаут будет использоваться только для этого ASPa.
0
3735 / 2688 / 614
Регистрация: 08.06.2007
Сообщений: 9,259
Записей в блоге: 4
13.06.2007, 15:31 5
Если есть возможность, пусть ваш скрипт время от времени отправляет клиенту что-то вроде

<!-- -->

IE будет думать что все в порядке.
0
sa
14.06.2007, 12:44 6
Спасибо всем, кто откликнулся.
Уточнил обстановку.

Настройка IIS:
SessionTimeout=30 min
ASP script timeout=900 sec (50 min)
настройка Connection:
Timeout - не устанавливаю вовсе
CommandTimeout=900 sec (15 min)

На самой странице код ASP отсылает в IIS заголовок <HEAD> и затем запускает скрипт SQL сервера.

С начала посылки запроса на получение страницы asp с сервера до момента появления ошибки проходит 5 минут.

Возникает диалоговое окно IE (заголовок окна 'MS Explorer') с сообщением: 'Internet Explorer cannot open the Internet Site http://..... The operation timed out.' У клиента IE 4.01 SP2 eng.

В исходнике странице видно, что IE получил:
<HTML>
<HEAD>
<META ....>
</HEAD>
и больше ничего.

Вопрос: возможно ли как-то в тегах <META>, <HEAD> или каких-то других передать информацию в IE о том, чтобы он увеличил свой timeout?
3 / 3 / 5
Регистрация: 10.05.2007
Сообщений: 1,616
14.06.2007, 13:13 7
У метода ADO Execute(SQL) есть параметр, который позоволяет выполнять SQL запрос асинхронно. Т.е. после вызова Execute выполнение программы продолжиться сразу не ожидая окончания запроса.
В это время можно выводить <!-- --> постоянно вызывая Response.Flush, если Response.Buffer=True.
И ждать пока запрос выполниться. Тут есть проблема - как узнать что запрос выполнился в программе? В VB есть WithEvents, т.к. ADO генерирует событие об окончании запроса. Т.е. надо писать VB компонент, который пока не выполнился запрос записывал бы <!-- -->, а затем засыпал миллисекунд на 1000.

Как увеличить время тайм аута в IE я не знаю.

Может тебе стоит поработать над оптимизацией SQL запроса, это явно принесет тебе больше выгоды.
0
0 / 0 / 0
Регистрация: 10.05.2007
Сообщений: 59
14.06.2007, 17:05 8
ASP script timeout=900 sec (50 min)- вообще-то это 15 min. А в ASPe Server.ScriptTimeout = 3000 -это 50 min ничего не даст?
0
sa
14.06.2007, 17:19 9
Спасибо всем, кто откликнулся.
Нашел комментарий Microsoft к этой проблеме 'PRB: Internet Explorer Error 'Connection Timed Out' When Server Does Not Respond Within Five Minutes' на http://support.microsoft.com/support/kb/articles/Q181/0/50.ASP
В итоге:
- можно реестр изменить ручками;
- поменять логику работы asp скрипта для посылки клиенту каких-либо символов во время асинхронной работы SQL команды;
- оптимизировать SQL команду.
Мне в интранет и первый вариант сойдет.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2007, 17:19

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Timeout expired в SQLServer 7.0(SP2)
При вызове хранимых процедур(с запросами на вставку или выборку данных, причём самые простейшие...

Скрипт долго выполняется в PHP7
Дорой ночи всем! У меня возникла такая вот проблема, есть скрипт для проверки например...

[Microsoft][ODBC SQL Server Driver]Timeout expired
Установил SQL Server 2000, пытаюсь выполнить запрос, через 30 сек. выдаёт такое вот сообщение...

ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
Подскажите что это, я даже не понял что изменилось


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.