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

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

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

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

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

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

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

10
задан Community 23 May 2017 в 11:45
поделиться

1 ответ

Нет ничего, чтобы уменьшить многословность (кроме того, что говорит вереск).

Но хорошая статья о самой проблеме: Template Typedef .

Вам действительно понадобится этот трюк, если у вас есть какая-то родовая функция, которая ожидает, что ваш тип будет иметь какой-то связанный typedef, и ваш тип будет шаблонным (учтите, что вы предоставили result_t и это должен быть ваш параметр шаблона!).

-121--4716331-

Можно использовать внутренний тип:

template <typename U>
struct sptr {
    typedef tr1::shared_ptr<U> t;
};

Затем введите sptr < U >:: t или, к сожалению, часто typename sptr < U >:: t .

C++ 0x имеет шаблонные типы, можно проверить, можно ли убедить компилятор принять их:

template<typename U>
using sptr = tr1::shared_ptr<U>;

Тогда скажи sptr < U >

И конечно всегда есть # define sptr::tr1::shared_ptr, например, если вы ожидаете C++ 0x в будущем и хотите преодолеть разрыв. Или если вы используете его в достаточно узком контексте, то макрос не страшен.

-121--4716330-

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

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

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

Джеральд написал re: Timeout of an ASP.NET стр.
на ср., 29 ноября 2006 года 15:38
I решил проверить действительность этого написанием тестовой программы, содержащей две страницы. На одной из страниц я установка для свойства StartTimeout значения 3000, в то время как на другой странице значение свойства не изменяется. Оказывается, что после загрузки первая страница, затем вторая страница, значение, определяющее тайм-аут в второй странице возвращено значение по умолчанию значение (90 секунд для освобождения, 30000000 для отладки) или набор значений в файлах конфигурации. В заключение, Тайм-аут ПО свойство, при изменении на одной странице, не изменяется на глобальном уровне.

10
ответ дан 4 December 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: