Время ASP.NET UpdatePanel

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


Общее правило для размещения typename в основном, когда вы используете параметр шаблона, и хотите получить доступ к вложенному typedef или с использованием псевдонима, например:

template
struct test {
    using type = T; // no typename required
    using underlying_type = typename T::type // typename required
};

Обратите внимание, что это также относится к метафункциям или вещи, которые также принимают общие параметры шаблона. Однако, если предоставленный параметр шаблона является явным типом, вам не нужно указывать typename, например:

template
struct test {
    // typename required
    using type = typename std::conditional::type;
    // no typename required
    using integer = std::conditional::type;
};

Общие правила добавления определителя template в основном аналогичны, за исключением они обычно включают шаблонные функции-члены (статические или другие) структуры / класса, которые сами шаблоны, например:

Учитывая эту структуру и функцию:

template
struct test {
    template
    void get() const {
        std::cout << "get\n";
    }
};

template
void func(const test& t) {
    t.get(); // error
}

Попытка доступа t.get() изнутри функции приведет к ошибке:

main.cpp:13:11: error: expected primary-expression before 'int'
     t.get();
           ^
main.cpp:13:11: error: expected ';' before 'int'

Таким образом, в этом контексте вам понадобится ключевое слово template заранее и вызвать его так:

t.template get()

Таким образом, компилятор будет анализировать это правильно, а не t.get < int.

51
задан Druid 7 June 2012 в 04:21
поделиться

6 ответов

На ScriptManager существует свойство:

AsyncPostBackTimeout="300"
87
ответ дан CodeRedick 7 November 2019 в 09:47
поделиться

Это добилось цели (в основном просто игнорирующий все тайм-ауты):

<script type="text/javascript"> 
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) { 
            if (args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerTimeoutException') { 
                            args.set_errorHandled(true); 
            } 
        }); 
    </script> 
11
ответ дан ctrlShiftBryan 7 November 2019 в 09:47
поделиться

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

Это расположено в свойствах Вашего веб-сайта, виртуального каталога, кнопки конфигурации, затем на вкладке опций.

или набор это путем установки Сервера. Свойство ScriptTimeout.

2
ответ дан Bravax 7 November 2019 в 09:47
поделиться

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

Добавляют свойство AsyncPostBackTimeOut к тегу ScriptManager для изменения тайм-аута по умолчанию с 90 секунд к чему-то более разумному для приложения.

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

1
ответ дан NotMe 7 November 2019 в 09:47
поделиться

В моем случае объект ScriptManager был создан в файле Master Page, который затем был разделен с файлами Content Page. Поэтому, чтобы изменить свойство ScriptManager.AsyncPostBackTimeout в Content Page, я должен был получить доступ к объекту в файле aspx.cs Content Page:

protected void Page_Load(object sender, EventArgs e)
{
     . . . 
     ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
     _scriptMan.AsyncPostBackTimeout = 36000;
}
43
ответ дан 7 November 2019 в 09:47
поделиться

Выполните следующие действия:

Шаг 1. В web.config установите httpRuntime maxRequestLength = "1024000" executionTimeout = "999999"

Шаг 2: Добавьте следующий параметр в ScriptManager вашей веб-страницы: AsyncPostBackTimeout = "360000"

Это решит вашу проблему.

7
ответ дан 7 November 2019 в 09:47
поделиться
Другие вопросы по тегам:

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