Crystal Reports 异常:已达到系统管理员配置的最大报表处理作业限制 [英] Crystal Reports Exception: The maximum report processing jobs limit configured by your system administrator has been reached
问题描述
我遇到了一个非常错误的问题,在 ASP.NET 应用程序中同时多次查看相同的报告后我得到了这个异常:
I'm facing a very buggy issue, in ASP.NET application after viewing the same report many times simultaneously I got this exception:
您的系统配置的最大报表处理作业限制已联系管理员.
The maximum report processing jobs limit configured by your system administrator has been reached.
等等,我知道那里有大量的解决方案,但它们都不适用于我.
Wait I know there are tons of solutions out there but all of them are not working with me.
我把 ReportDocument.Close();ReportDocument.Dispose();在 CrystalReportViewer_Unload 事件中,仍然抛出异常.
I put ReportDocument.Close(); ReportDocument.Dispose(); in CrystalReportViewer_Unload event, and still throw the exception.
Private Sub CrystalReportViewer1_Unload(ByVal sender As Object, ByVal e As System.EventArgs) 处理 CrystalReportViewer1.Unload报告文件.关闭()报告文件.Dispose()GC.Collect()结束子
我在 HKEY_LOCAL_MACHINESOFTWARESAP BusinessObjectsCrystal Reports for .NET Framework 4.0Report Application ServerInprocServer
和 HKEY_LOCAL_MACHINESOFTWARESAP BusinessObjects 中编辑 PrintJobLimit 注册表Crystal Reports for .NET Framework 4.0Report Application ServerServer
到 -1 甚至到 9999,仍然抛出异常.
I edit the PrintJobLimit registry in HKEY_LOCAL_MACHINESOFTWARESAP BusinessObjectsCrystal Reports for .NET Framework 4.0Report Application ServerInprocServer
and HKEY_LOCAL_MACHINESOFTWARESAP BusinessObjectsCrystal Reports for .NET Framework 4.0Report Application ServerServer
to -1 even to 9999, and still throw the exception.
这是我调用报告的代码片段:
Here is the code snippet where I call my report:
Table_Infos = New TableLogOnInfos()
Table_Info = New TableLogOnInfo()
Con_Info = New ConnectionInfo()
With Con_Info
.ServerName = ConfigurationManager.AppSettings("server_name")
.DatabaseName = ConfigurationManager.AppSettings("DB")
.UserID = user_name
.Password = pass_word
.Type = ConnectionInfoType.SQL
.IntegratedSecurity = False
End With
Table_Info.ConnectionInfo = Con_Info
If Session("recpt_lang") = "Arabic" Then
reportFile.Load(Server.MapPath("/Reports/") & "collectrecpt_new_ar.rpt")
ElseIf Session("recpt_lang") = "English" Then
reportFile.Load(Server.MapPath("/Reports/") & "collectrecpt_new.rpt")
End If
For Each mytable In reportFile.Database.Tables
mytable.ApplyLogOnInfo(Table_Info)
Next
CrystalReportViewer1.ReportSource = reportFile
CrystalReportViewer1.SelectionFormula = Session("SelectionForumla")
CrystalReportViewer1 = Nothing
推荐答案
我建议将您的 close/dispose/gc.collect 代码移到该卸载过程之外.换句话说:
I would recommend moving your close/dispose/gc.collect code outside of that unload process. In other words:
- 加载报告
- 分配给查看器控件
- 在查看器控件中显示报告
- 关闭查看器控件并卸载(完全)
- 然后在任何查看器控制代码之外关闭/dispose/gc.collect
我的猜测是在清理报表时查看器控件没有完全关闭.
My guess is the viewer control is not completely closed when the report is being cleaned up.
Crystal 是一个非常占用内存且非常挑剔的过程.
Crystal is a very memory intensive process and very finicky.
这篇关于Crystal Reports 异常:已达到系统管理员配置的最大报表处理作业限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!