Время ожидания
При работе с компонентом StiNetCoreViewer можно установить время ожидания (timeout) выполнения различных операций - хранение отчета в кэше, ответ сервера, выполнение запроса. Настройка времени ожидания выполняется при помощи свойств компонента и опций отчета.
Предоставляет возможность установить время в минутах, которое сервер будет хранить построенный отчет в кэше с момента последнего действия вьювера. По умолчанию установлено значение 10 минут.
Index.cshtml |
... @Html.StiNetCoreViewer(new StiNetCoreViewerOptions() { Server = { CacheTimeout = 10 } }) ... |
Использование кэша увеличивает скорость работы вьювера с отчётом. Более подробно можно ознакомиться в главе Кэширование.
Предоставляет возможность установить время ожидания ответа от сервера в секундах, по истечении которого будет выдана ошибка связи с сервером. По умолчанию установлено значение 30 секунд. Для больших отчетов рекомендуется увеличить данное значение.
Index.cshtml |
... @Html.StiNetCoreViewer(new StiNetCoreViewerOptions() { Server = { RequestTimeout = 30 } }) ... |
Предоставляет возможность установить время ожидания запроса в секундах, при использовании SQL источников данных в отчете. Значение данного свойства сохраняется в самом шаблоне отчёта для каждого SQL подключения отдельно.
Ниже приведен пример кода, который предоставляет возможность установить время ожидания запроса для уже созданного MS SQL соединения и источников данных в отчете.
Index.cshtml |
... @Html.StiNetCoreViewer(new StiNetCoreViewerOptions() { Actions = { GetReport = "GetReport", ViewerEvent = "ViewerEvent" } }) ... |
Index.cshtml.cs |
... public IActionResult OnPostGetReport() { StiReport report = new StiReport(); report.Load(Server.MapPath("Report.mrt")); ((StiSqlSource)report.Dictionary.DataSources["DataSourceName"]).CommandTimeout = 1000;
return StiNetCoreViewer.GetReportResult(this, report); }
public IActionResult OnGetViewerEvent() { return StiNetCoreViewer.ViewerEventResult(this); }
public IActionResult OnPostViewerEvent() { return StiNetCoreViewer.ViewerEventResult(this); } ... |