Rae*_*ark 5 asp.net crystal-reports
我们在 ASP.Net 应用程序中遇到了一个问题,即在为用户生成报告后,Crystal Reports 引擎在服务器的 Temp 文件夹中留下垃圾 .tmp 文件。
所以我们试图弄清楚如何在 Report 对象上运行 .Close() 和 .Dispose() 方法,但我们发现在导出发生后代码永远不会运行。
MyReport.Report.ExportToHttpResponse(ExportFormatType.PortableDocFormat,
this.Response, true, "My_Report");
MyReport.Report.Close();
MyReport.Report.Dispose();
Run Code Online (Sandbox Code Playgroud)
设置在最后两行的断点永远不会被命中,我们还尝试将其他代码放在那里来测试处理。没有一个运行。(我也在其他具有类似代码的网站上看到过这个问题,但没有答案)
我假设此时 ExportToHttpResponse 方法正在向用户返回文件流 (PDF),结束处理,因此其余代码不会运行。如果是这种情况,我们如何让 CR 对临时文件执行清理,而 Close() 和 Dispose() 方法应该这样做?我们是否必须实施手动事后清理?
我没有办法重现这个问题,所以我会指出您可以使用 using 语句,它允许您指定何时应该释放对象。
什么是 C# using 块以及为什么要使用它? http://msdn.microsoft.com/en-us/library/yh598w02(VS.80).aspx
没试过这个,但我想你也许可以做类似的事情
using(MyReport m = new MyReport())
{
m.Report.ExportToHttpResponse(ExportFormatType.PortableDocFormat,
this.Response, true, "My_Report");
}
Run Code Online (Sandbox Code Playgroud)
当我输入它时,我不确定它是否会与您已经拥有的有很大不同,但是哦,好吧,这是值得尝试的事情。在我看来,这是有效的。:)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
4876 次 |
| 最近记录: |