0

我需要修复 ASP.NET 2.0 应用程序中的一个错误,该应用程序使用 ActiveReports 3.0 从 SQL Server 存储的过程源生成报告。报表运行良好,但数据不正确,因此我们修复了存储过程并通过 ASP.NET 接口重新运行报表。

我们看到的是 ActiveReports 仍在显示数据的早期版本。事实上,有一个从 proc 传递过来的报告数据字段,指示数据的生成时间,并确认它是陈旧的数据。

因此,似乎 ActiveReports 正在缓存早期的结果,我们想关闭该功能,但我在文档中没有看到太多解释缓存如何工作(生存时间等)或如何配置或禁用它。任何见解将不胜感激。

顺便说一句,不确定这是否相关,但我们不使用 WebViewer 控件,而是创建 ActiveReport3 的实例,Run() 它,然后使用 PdfExport 类创建 PDF 图像和 Response.BinaryWrite() 直接输出.

4

1 回答 1

1

您在 ActiveReports 中看不到有关缓存功能的文档的原因是因为没有任何文档,除非您使用 WebViwer 控件:) 但是,在您描述的场景中 - 不使用 webviewer - AR 本身不会执行任何缓存。我怀疑您看到的缓存是 HTTP 输出缓存,例如浏览器、服务器(通过页面或用户控件的 ASP.NET 输出缓存),或者服务器和客户端之间的某些代理正在缓存先前呈现的输出。

WebViewer 确实利用了 ASP.NET 的内置缓存框架(例如 WebCache、HTTP 缓存策略等)。有关控制如何控制 ActiveReports 所做的缓存的信息,请参阅 WebViewer 的SlidingExpirationInterval 属性ClearCachedReport 方法。

于 2009-06-22T00:25:37.577 回答