我使用的是使用visual studio 2012的Microsoft crystal report开发人员版本。在我的报告正常工作之前,当我在生产中部署我的报告时,之后我收到错误,系统管理员配置的最大报告处理作业限制已经到达水晶报告,也在c-> windows->临时文件夹.rpt文件没有删除。如何在临时文件夹中删除它。我的代码中有任何错误。我正在使用以下代码。我怎么能摆脱这个错误。我也阅读各种论坛,但我没有找到解决方案
public partial class myClass : System.Web.UI.Page
{
ReportDocument crystalReport = new ReportDocument();
protected void Page_Init(object sender, EventArgs e)
{
crystalReport.Load(Server.MapPath("~/path/mainrep.rpt"));
crystalReport.SetDataSource(dtblstdtmtbl);
int exportFormatFlags = (int)(CrystalDecisions.Shared.ViewerExportFormats.PdfFormat);
cviewer.AllowedExportFormats = exportFormatFlags;
cviewer.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
cviewer.HasToggleGroupTreeButton = false;
cviewer.HasToggleParameterPanelButton = false;
cviewer.DisplayGroupTree = false;
cviewer.EnableDrillDown = false;
cviewer.ReportSource = crystalReport;
}
protected void Page_Unload(object sender, EventArgs e)
{
CloseReports(crystalReport);
crystalReport.Close();
crystalReport.Dispose();
cviewer.Dispose();
crystalReport = null;
cviewer = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}//end page unload
private void CloseReports(ReportDocument reportDocument)
{
Sections sections = reportDocument.ReportDefinition.Sections;
foreach (Section section in sections)
{
ReportObjects reportObjects = section.ReportObjects;
foreach (ReportObject reportObject in reportObjects)
{
if (reportObject.Kind == ReportObjectKind.SubreportObject)
{
SubreportObject subreportObject = (SubreportObject)reportObject;
ReportDocument subReportDocument = subreportObject.OpenSubreport(subreportObject.SubreportName);
subReportDocument.Close();
}
}
}
reportDocument.Close();
}
}
答案 0 :(得分:0)
当Crystal Report发出以下消息时,这是一个非常常见的错误。
“已达到系统管理员配置的最大报告处理作业限制。”
这实际上意味着已达到Crystal Report打印作业限制,您应该通过增加注册表中的作业限制来解决此问题。造成此问题的根本原因是垃圾收集器(GC)在其收集过程中无法清除报告文档的引用,而只是清除了报告查看器。
HKEY_LOCAL_MACHINE \ SOFTWARE \ CRYSTAL DECISIONS \ 10.0 \ REPORT APPLICATION SERVER \ SERVER \ PrintJobLimit