1

我在 SQL Server 2012 上将 SSRS 与 SOAP 数据源一起使用。当服务超时时,报告用户会在他/她的浏览器上看到以下文本...

  • 报告处理过程中发生错误。(rsProcessingAborted)
    - 共享数据集“XXXLookup”的执行失败。(rsDataSetExecutionError)
    • 数据集“XXXLookup”的查询执行失败。(rsErrorExecutingCommand)
      • 对指定 URL 执行 Web 请求失败。(rsXmlDataProviderError)
        ® 操作已超时

有没有办法在 SQL Server 2012 Reporting Services 中配置自定义错误处理程序以提供用户友好的消息?(我已经搜索并发现了类似的问题,答案通常是否定的,在 2012 年之前的版本中,SSRS 无法捕获 rs 错误。)

4

1 回答 1

0

尽管 SSRS 2012 在配置文件中包含一个“挂钩”SSRS 事件的部分,但根据 MSFT,您不应修改此部分(来自 MSDN文档):

“事件处理指定默认事件处理程序。不要修改此部分。此部分不可扩展。”

那么......这会让你在哪里?您当然可以修改 SSRS 的 web.config 部分,如此处所述。当然,这只允许您将默认(不友好)错误页面替换为稍微友好的错误页面,但不清楚您将如何动态填充这个新的自定义错误页面上的失败原因。其他客户也有同样的问题,但 MSFT 似乎没有人回答。

那么,我会在这里做什么?这取决于您遇到此问题的报告数量。如果只有一小部分可能的报告,那么我可能会通过自定义扩展将逻辑放入报告本身,如果它没有在所需的时间段内返回数据,则会在报告上填充一个文本框。

还有一个更大的考虑是为什么这些报告呈现如此缓慢?我会问用户明显的问题,例如“是否有大量数据被返回 - 您是否需要/在每个报告中使用那么多数据?”和“如果返回大量数据,是否可以它显示为预先聚合(由源数据库)?另外,我会考虑通过索引、更优化的查询语法等来优化数据源的查询……

另一个考虑因素是报告何时超时?一天中有特定的时间吗?那个时候网络有拥堵吗?按照同样的思路,用户是否可以接受一点延迟,以便可以通过预定快照呈现报告,这也可能加快检索速度。

于 2012-08-17T16:06:45.120 回答