我们在项目中使用 ActiveReports,在代码中我们使用 CacheToDisk 属性来避免内存异常。我们使用了 WCF 服务,它将调用 dll 中包含 ActiveReport 报告生成的方法。WCF 服务托管在 Windows 服务中。
当报告导出为 PDF 时,在 IsolatedStorage 文件夹中会创建 PDF*.tmp 文件,并且不会自动删除。我们使用了 Document 对象的 Dispose() 方法,AR*.tmp 文件被删除,但 PDF*.tmp 文件(每个文件大约 100 MB)没有被删除。我们对 IsolatedStorage 文件夹进行了硬编码,并为运行 Windows 服务的用户授予了完全权限。
请告诉我们如何自动删除 IsolatedStorage 文件夹中的 PDF*.tmp 文件?有时,即使在使用 CacheToDisk(导出到 excel 或 pdf)之后,某些报告也会出现内存不足的异常,有时 Windows 服务本身会由于内存异常而自动停止。