Сведения о вопросе

Drake

18:21, 23rd August, 2020

Теги

c#   asp.net    

Установить ASP.net executionTimeout в коде / "refresh" запрос

Просмотров: 342   Ответов: 2

У меня будет страница ASP.net, которая создает несколько листов Excel и отправляет их пользователю. Проблема в том, что иногда я получаю тайм-ауты Http, предположительно потому, что запрос выполняется дольше, чем executionTimeout (110 секунд по умолчанию).

Мне просто интересно, какие у меня есть варианты, чтобы предотвратить это, не желая вообще увеличивать executionTimeout в web.config ?

В PHP существует set_time_limit , который можно использовать в функции для продления ее жизни, но я не видел ничего подобного в C#/ASP.net?

Как вы справляетесь с длительными функциями в ASP.net?



  Сведения об ответе

PIRLO

17:02, 1st August, 2020

Если вы хотите увеличить тайм-аут выполнения для этого одного запроса, вы можете установить

HttpContext.Current.Server.ScriptTimeout

Но у вас все еще может быть проблема тайм-аута клиента, которую вы не можете надежно решить непосредственно с сервера. Чтобы обойти это, вы можете реализовать страницу "processing" (как предлагает Роб), которая будет публиковаться до тех пор, пока ответ не будет готов. Или вы можете заглянуть в AJAX, чтобы сделать что-то подобное.


  Сведения об ответе

crush

15:39, 4th August, 2020

Мне самому еще не приходилось слишком часто сталкиваться с этой проблемой, поэтому, пожалуйста, имейте это в виду.

Разве нет в любом случае вы можете запустить процесс асинхронно и указать метод обратного вызова, который будет выполняться после завершения, а затем Сохранить страницу в цикле цикла "we are processing your request..". Затем вы можете открыть его, чтобы добавить некоторые приятные улучшения UI, а также.

Просто как бы размышляю вслух. Вероятно, это было бы именно то, что я хотел бы сделать :)


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться