1

我们的应用程序使用 SQL Server Reporting Services,并允许用户将自定义过滤器添加到报告中。为此,我们修改 RDL,然后将修改后的 RDL 上传到服务器以创建新报告。问题是,报告运行一次后,就不再需要它了;这真的只是一个临时报告。显然,这最终会导致大量临时报告。我们需要一种方法来清理这些。

我们已经考虑过外部方法,例如创建服务或作业来定期删除报告,如果我们不能想出更好的方法,这可能就是我们最终会做的事情。我们想知道的是,SSRS 本身是否提供了更好的方法来做到这一点?我们考虑过尝试以某种方式使用将设置为过期的缓存实例,但这似乎只适用于报告的已执行实例而不是报告本身。据我所知,没有办法将报告设置为过期。还有其他方法可以让 SSRS 为我们清理吗?

不能立即删除报告,因为我们的执行是异步的。

4

1 回答 1

2

内置的,什么都没有。但是自己写东西很容易。

尝试使用一个流程来查询您的报告目录以查找超过半小时(左右)的报告。您甚至可以加入 ReportServerTempDB 以查看他们是否仍有活动会话(在这种情况下,您可以忽略它们一段时间)。

找到它们后,很容易使用 Web 服务界面将其从目录中删除。

但是......我实际上会寻找一种更好的方法来提供自定义过滤器,使用代码。当然,您可以提供过滤器作为参数,并使用报告中的 VB 代码将用户提供的内容转换为可以为每一行评估的内容。

于 2009-08-26T23:55:27.040 回答