在过去的几个月里,我在一个客户端的应用程序中开发了几十个报告,并且最初不得不与服务器,sql和客户端中的报告超时作斗争,以便使报告正确加载。
一段时间过去了,我们已经更改了代码的其他区域,但是没有任何服务器设置,我使用的是其他任何人都没有触及数据库的个人计算机。当我尝试在应用程序中查看我的最大报告时,我会在30分钟后收到此消息:
报表服务器数据库中发生错误。这可能是由于数据库中的连接失败,超时或磁盘状况不佳所致。 (rsReportServerDatabaseError) 超时已过期。操作完成之前经过的超时时间或服务器没有响应。
如果我尝试使用localhost / reports /以及SSRS预览在浏览器中加载报告,并且两种方法都可以完美加载。
我在实体框架中开发,使用RptViewer类和basicHttpBinding方法在wcf托管基于上下文的设置中,我的程序中有多个app.configs,并将所有超时时间推到30分钟以上,我将ProcessingMode设置为Remote和ServerReport.ReportServerUrl到Web浏览器地址(localhost / reportserverand)并给它24小时超时(86400000 ms)。
我添加的超时修改都以这种方式属于basicHttpBinding(此处有意留空名称):
我还修改了SQL管理工作室中远程连接的数据库超时设置,并且当连接到报告时,Web浏览器常规设置中的设置已设置为永不超时。
我可能错过了超时值吗?浏览器和ssrs预览版本运行到几乎小时标记,因此我不相信SQL中发生超时,我已经根据Localhost / Reports运行Web报告,但系统连接到Localhost / ReportServer(在Web浏览器中加载需要更长的时间)。我想知道这是否可能是问题的一部分,因为即使加载图标也不会出现很长时间。
任何人都可以指出我可能错过的任何关键的30分钟默认超时,我怀疑在通过代码访问时,它是否在报表服务器本身内?或者,是否有一种简单的方法可以快速找到哪个参数超时?