Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Длинный запрос / 4 сообщений из 4, страница 1 из 1
25.02.2005, 15:20
    #32933805
Andrey Sobolev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длинный запрос
Подскажите, как можно решить такую проблему:

Есть ASP - сайт, который формирует некий отчет, примерно минут на 5.
Этот отчет формируется в Excel - файл, который потом подкладывается клиенту на закачку.

Проблема в том, что через 3-4 минуты броузер отрубается и пишет что сервер не доступен. Как можно обойти это ограничение ?

WBR
Andrey V. Sobolev
...
Рейтинг: 0 / 0
25.02.2005, 16:54
    #32934159
Длинный запрос
Вопрос был задан в ASP.NET форуме, но по ASP-сайту. У нас опыт только по ASP, поэтому и посоветовать могу следущее. Если данные тянуться из SQL сервера, то надо смотреть как эти данные превратить в XML-поток. Затем XML-данные можно(нужно) пропустить через XSLT-шаблон и превратить в spreadsheet-таблицу. Если указать Response.ContentType = "application/vnd.ms-excel", от клиент в браузере получит Excel-таблицу. Ему останется только "сохранить как", и пользоваться автономно файлом с данными.
У нас так работает ИС, на котором выводится отчет из 4 тыс записей. время вывода от 5 до 10 секунд. Это в Excel. Если в окно браузера простая таблица, то примеро 6.5 тысяч записей выводится секунд за 20..
С уважением,
Измайлов Ф.В
...
Рейтинг: 0 / 0
28.02.2005, 12:39
    #32936201
Andrey Sobolev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длинный запрос
Понятно.

У меня же другая проблема, я выбрасываю таблицу прямо в Excel.
И только после того, как этот файл сформруется, клиент его скачивает из своей папки. А эксель очнь долго формируется....

ps
А можно ли где-то посмотреть, почитать про XSLT преобразование для Excel ?
WBR
Andrey V. Sobolev
...
Рейтинг: 0 / 0
28.02.2005, 13:32
    #32936357
marina milanina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Длинный запрос
Надо либо увеличить таймаут работы скрипта (простое, но не очень хорошее решение )
Server.ScriptTimeout=9000

либо переработать логику вашего скрипта, формирующего отчет
Например, логика может быть такой:

При первоначальном запросе на отчет ваш скрипт записывает входные параметры в служебную таблицу и ставит таким образом на очередь запрос на создание отчета. На этом скрипт заканчивает свою работу и выдает пользователю сообщение: "отчет формируется".

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

После чего некоторое время первый скрипт авторефрешится каждые 10 секунд, например, и при каждом рефреше проверяет: не готов ли еще отчет. Если отчет готов, то скрипт делает выборку из таблицы (файла) и выдает отчет пользователю на гора.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Длинный запрос / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]