• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
PowerCoder
博客园    首页    新随笔    联系   管理    订阅  订阅

一个容易被忽略的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页面控件标签设置:

 

posted @ 2015-12-03 15:57  PowerCoder  阅读(1242)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3