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

 

 

Свойство CacheTimeout

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

 

Index.cshtml

...
@Html.Stimulsoft().StiMvcDesigner("MvcDesigner1",

new StiMvcDesignerOptions() {

Server =

{

CacheTimeout = 10

}

})

...

 

 

Использование кэша увеличивает скорость работы дизайнера с отчетом. Более подробно можно ознакомиться в главе Кэширование.

 

 

Свойство RequestTimeout

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

 

Index.cshtml

...

@Html.Stimulsoft().StiMvcDesigner("MvcDesigner1",

new StiMvcDesignerOptions() {

Server =

{

RequestTimeout = 30

}

})

...

 

 

Опция CommandTimeout

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

 

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

 

Index.cshtml

...

@Html.Stimulsoft().StiMvcDesigner("MvcDesigner1",

new StiMvcDesignerOptions() {

Actions =

{

GetReport = "GetReport",

DesignerEvent = "DesignerEvent"

}

})

...

 

HomeController.cs

...

public ActionResult GetReport()

{

 

StiReport report = new StiReport();

report.Load(Server.MapPath("Report.mrt"));

((StiSqlSource)report.Dictionary.DataSources["DataSourceName"]).CommandTimeout = 1000;

 

return StiMvcDesigner.GetReportResult(report);

}

 

public ActionResult DesignerEvent()

{

return StiMvcDesigner.DesignerEventResult();

}

...