Могу ли я изменить порог тайм-аута веб-страницы в ASP.NET для одной страницы?

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

Конечно, после того, как мы продолжим жить, мы обнаружили, что некоторые пользователи имеют достаточно данных, чтобы заставить отчет работать достаточно медленно, чтобы был тайм-аут.

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

Есть ли способ продлить период таймаута для подачи одной веб-страницы?

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

Я также нашел этот локально, но он не ответил на вопрос (хотя он предлагал более долгосрочное решение, к которому мы будем стремиться. )

Ответ 1

Если страница находится в (или может быть перенесена) в ее собственный каталог, вы можете поместить файл web.config в этот каталог только с помощью режима executeTimeout или любых других параметров, которые вы хотите расширить. То есть.

<?xml version="1.0"?>
<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
      <!-- allow for intensive calculations in reports -->
      <httpRuntime executionTimeout="6000" /> 
    </system.web>
</configuration>

По словам одного из комментаторов первой ссылки, которую вы указали, установка Server.ScriptTimeout = 3600; не является глобальным изменением, поэтому вы можете захотеть пересмотреть этот вариант.

Gerald написал re: время ожидания ASP.NET страница
 на Wed, 29.11.2006 15:38
 я решил проверить действительность этого путем написания тестовой программы, содержащей две страницы. На одной из моих страниц установка свойства ScriptTimeout для 3000, а на другой странице значение свойства не изменяется. Оказывается, после загрузки первая страница, затем вторая страница, значение ScriptTimeout в вторая страница вернулась к своему стандарту значение (90 секунд для выпуска, 30000000 для отладки) или установленное значение в конфигурационных файлах. В заключение, ScriptTimeout свойство, при изменении на одной странице, не изменяется на глобальном уровне.