一个容易被忽略的ReportingService超时问题
我们在使用Sql Server Reporting Service开发报表的时候,经常会遇到报表超时的问题,报表超时的原因有很多,也有很多地方可以设置报表的超时时间,比如在报表中的数据源(datasource)上可以设置数据库连接的超时时间,在报表中的数据集(dataset)上可以设置执行查询语句的超时时间,在ASP.NET页面中的报表控件ReportViewer上也可以设置等待超时时间,除了前面说的三种超时时间还有一个超时时间很容易被忽略,那就是ASP.NET页面上ScriptManager控件的超时时间。因为ReportViewer在访问远程服务器报表的时候是通过ScriptManager控件发送Ajax请求来获取报表数据的,所以在使用ReportViewer控件的ASP.NET WebForm页面上都要求再放一个ScriptManager控件也就是这个原因。
ScriptManager控件默认的超时时间是90秒,所以当有一张报表在报表服务器上的处理时间超过90秒后客户端页面上就会报一个javascript的等待超时错误。我们可以设置ScriptManager控件的AsyncPostBackTimeout属性值来更改这个默认超时时间,该属性的单位是秒。下面两个截图分别显示用C#代码和ASP.NET页面控件标签来设置ScriptManager控件的AsyncPostBackTimeout属性为900秒:
通过C#代码设置:
通过ASP.NET页面控件标签设置:
分类:
SqlServer SSRS
, ASP.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架