问题描述
系统在刚启动不久,可以正常打印报表,但如果报表打印3.次以后,再想打印时便提示“报表加载失败”。当把机器重启就又可以打印了。是不是内存释放问题啊?部分代码如下:ReportDocumentTermObjectsReport=newReportDocument();stringreportPath;reportPath=Server.MapPath("~/Reports/TrainingTerm_StudentRegistration_Graser.rpt");TermObjectsReport.Load(reportPath);TrainingTermReport.ReportSource=TermObjectsReport;TrainingTermReport.PrintMode=CrystalDecisions.Web.PrintMode.ActiveX;
解决方案
解决方案二:
解决方法如下:我发现在C:WINDOWSTemp这个临时文件里面有大量的水晶报表文件,每使用一次就会生成几个文件,在电脑没有重新启动的情况下它不会被删除,而出现大量的无用文件,在google里面搜了一圈发现也有人碰到这样的情况但回答的很模糊只是说要将水晶报表装载的文档关闭掉,从这里可以看出出现这样的错误应该是程序员人为照成的.具体解决如下:1.ReportDocumen实例必须为类成员privateReportDocumentprtp=newReportDocument();2.使用完水晶报表必须关闭文件,这样子就不会在windows的临时文件里面产生.privatevoidPage_Unload(objectsender,EventArgse){prtp.Dispose();}Page_Unload事件是在页面完全显示的时候运行,这样子就解决了.
解决方案三:
UP
解决方案四:
收藏一下