Подтвердить что ты не робот

Время ожидания UpdatePanel ASP.NET

Я делаю запрос от UpdatePanel, который занимает более 90 секунд. Я получаю эту ошибку таймаута:

Ошибка выполнения Microsoft JScript: Sys.WebForms.PageRequestManagerTimeoutException: запрос сервера время ожидания.

Кто-нибудь знает, есть ли способ увеличить время до истечения времени вызова?

4b9b3361

Ответ 1

В ScriptManager есть свойство:

AsyncPostBackTimeout="300"

Ответ 2

В моем случае объект ScriptManager был создан в файле главной страницы, который затем делился с файлами страницы содержимого. Таким образом, чтобы изменить свойство ScriptManager.AsyncPostBackTimeout на странице содержимого, мне пришлось получить доступ к объекту в файле aspx.cs страницы содержания:

protected void Page_Load(object sender, EventArgs e)
{
     . . . 
     ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
     _scriptMan.AsyncPostBackTimeout = 36000;
}

Ответ 3

Это сделало трюк (в основном просто игнорируя все таймауты):

<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> 

Ответ 4

Пожалуйста, выполните следующие действия:

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

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

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

Ответ 5

Это можно настроить, изменив время ожидания ASP script в IIS.

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

или установите его, установив свойство Server.ScriptTimeout.

Ответ 6

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

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

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

Ответ 7

Проблема, с которой вы сталкиваетесь, - это когда ваше приложение запускается в тайм-аут в запросе базы данных SQL. Для возврата результата требуется больше времени, чем значение по умолчанию. Поэтому вам нужно увеличить свойство ConnectionTimeout.

Вы можете сделать это несколькими способами:

  • Строка подключения имеет свойство ConnectionTimeout. Это свойство определяет максимальное количество секунд, в течение которых ваш код будет ждать соединения базы данных, которая будет открыта. Вы можете установить время ожидания соединения в строке строки подключения в web.config.

    <connectionstrings>
        <add name="ConnectionString" 
             connectionstring="Database=UKTST1;Server=BRESAWN;uid="      system.data.sqlclient="/><br mode=" hold=" /><br mode=" html="> <asp:ToolkitScriptManager runat=" server=" AsyncPostBackTimeOut=" 6000="><br mode=">
        </add>
    </connectionstrings>
    
  • Вы можете поместить AsyncPostBackTimeout="6000" в .aspx страницу

    <asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000">
    </asp:ToolkitScriptManager>
    
  • Вы можете установить тайм-аут в SqlCommand, где вы вызываете хранимую процедуру в файле .cs.

    command.CommandTimeout = 30*1000;
    

Надеюсь, у вас есть решение!