SSRS 报表服务器 - 失败时发送电子邮件?

SSRS Report Server - Email on failure?

我的公司使用 SSRS 向用户发送报告,通过电子邮件订阅或用户在浏览器中打开报告服务器页面并单击他们想要的报告,然后针对数据库运行它。我称之为 "Interactive mode".

我的用户应该在报告失败时告诉我,这样我就可以去修复它,但大多数时候他们不会。

所以我需要去寻找失败的报告。我已经可以使用 SSRS 中的订阅报告查看哪些电子邮件订阅报告失败,但我需要一种方法来生成电子邮件或在其中一个交互模式报告失败时将行记录到 table。

我在 Visual Studio 中看不到任何明显的允许我这样做的东西,以前有人想出解决方案吗?

默认情况下,SSRS 在报表服务器数据库中维护订阅和错误信息。

  • Subscriptions 是报表服务器
  • 中所有订阅的目录信息 table
  • SubscriptionHistory 维护错误的扩展详细信息。

使用下面的脚本,您可以在一个地方监控所有订阅的最后状态,而不是通过 SSRS 网络界面。另外,您可以在此基础上开发自己的脚本:

select  c.ItemID as ReportItemID,
        c.Name as ReportName,
        c.Path as ReportLocation,
        s.Description as SubscriptionTitle,
        EventType,
        LastRunTime,
        LastStatus,
        CreationDate
from Subscriptions as s
     join Catalog as c on s.Report_OID = c.ItemID 
Where   LastStatus like '%failed%'
      or LastStatus like '%Error%'  
      and (NOT LastStatus like '%0 Errors.')
GO

事实证明,在名为 "ExecutionLog" 的 ReportServer 数据库中有一个非常有用的 table,其中包含这些详细信息。