reporting-services - 可以为 SQL Server 2012 报告配置自定义错误处理程序吗?

标签 reporting-services error-handling sql-server-2012

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

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

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

    最佳答案

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

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

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

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

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

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

    关于reporting-services - 可以为 SQL Server 2012 报告配置自定义错误处理程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865365/

    相关文章:

    sql-server - ssrs 2008 将参数列表传递给子报表

    python - 希望我的代码引发特定类型或错误,但打印原始错误

    php - 如何正确使用PHP require

    SQL Server - 忽略始终为真的条件

    html - 在 SQL Server 中如何使用 TYPE COLUMN 选项创建全文索引

    reporting-services - SSRS 设置 HTML 背景颜色

    reporting-services - 从表达式内部应用样式

    Azure SQL 数据库管理门户 - 默认列值

    datetime - 如何将SSRS中的时间格式化为HH :MM AM/PM format?

    python - pygame.key.get_pressed()-不起作用-pygame.error : video system not initialized