【问题标题】:TaskCanceledException: a task was cancelled while rendering jsreportTaskCanceledException:渲染jsreport时取消任务
【发布时间】:2018-01-03 22:58:02
【问题描述】:
我正在尝试渲染一个包含太多数据的 jsreport,当渲染时间过长时会显示此消息:
TaskCanceledException: a task was cancelled.
如果我加载的数据较少,报告效果会很好。
我的问题是,有一种方法可以避免TaskCanceledException 并让渲染时间占用渲染报告所需的时间?
【问题讨论】:
标签:
javascript
asp.net-web-api
jsreport
【解决方案1】:
感谢 Ankit Vijay 的回复,答案必须是你提到的超时,我的解决方案是下一个
我使用的是 jsreport embbedserver,我像这样设置超时
embeddedReportingServer.ReportingService.HttpClientTimeout = TimeSpan.FromMinutes(40);
使用这行代码,我不再收到此错误:
TaskCanceledException: 渲染 jsreport 时任务被取消
然后当我再次测试时,我在幻顿进程中遇到了这个错误:
无法呈现模板。渲染报告时出错:在幻像中执行时超时。
最后我通过像这样向我的嵌入服务器添加配置来解决它
Helper.embeddedReportingServer.Configuration = new
{
phantom = new
{
timeout = 900000,
numberOfWorkers = 2
},
tasks = new
{
numberOfWorkers = 2,
timeout = 900000,
}
};
【解决方案2】:
TaskCanceledException 很可能由于超时而出现。
尝试通过jsreport 配置增加超时。您可以阅读更多关于 jsreport 配置here 的信息。我自己没试过,但应该是tasks.timeout属性。