【问题标题】:Crystal Reports Maximum report processing jobs limit reachedCrystal Reports 已达到最大报表处理作业限制
【发布时间】:2020-10-03 14:39:12
【问题描述】:

我在 ASP.NET Web 表单应用程序中使用 Crystal Reports 13.5。我尝试将Close()Dispose() 调用放在Page_Unload 方法中,但没有帮助。

75 次报告后,我开始收到错误:

已达到系统管理员配置的最大报告处理作业限制。

我应该购买 Business Object 的许可证吗?

【问题讨论】:

  • 请在堆栈溢出中查看以下问题stackoverflow.com/questions/9579914/…
  • 在卸载页面调用dispose()close() 后仍然面临同样的问题
  • 我认为这个链接对你有用jepsonsblog.blogspot.in/2010/12/… 请试试这个并告诉我。谢谢
  • 对我不起作用。我应该购买业务对象吗?
  • 您好 Ajay,您是否更改了注册表项?这个问题很容易,通过更改注册表中的一个值:HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 11.5\Report Application Server\InprocServer\PrintJobLimit

标签: c# asp.net webforms crystal-reports


【解决方案1】:

它通过处理报告然后调用 GC.Collect() 对我有用。在我的情况下,仅处理对象是不够的。查看this 了解完整详情。

编辑: 根据 Div 的评论,这是链接中的解决方案:

  • 加载报告
  • 分配给查看器控件
  • 在查看器控件中显示报告
  • 关闭查看器控件并卸载(完全)
  • 然后在任何查看器控制代码之外关闭/dispose/gc.collect

【讨论】:

  • “虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。”
  • 虽然它确实解决了调用 Dispose 的问题,但这不是一个快速的操作。如果您像我一样将单个报告链接在一起并将它们以 PDF 格式放置,这意味着每个报告要额外等待一秒钟以上。这很令人沮丧。我不确定 SAP 正在做什么,它不能像其他报告界面那样工作,没有任意限制。如果我一遍又一遍地重用同一个 CrystalReport 文档对象,则不需要在两者之间进行 Disposed。
  • 我同意,这确实很令人沮丧。我的问题与链接无关,但我需要每天生成 7000 多个报告,因此使用打印作业限制不是一个好的选择,但在我的情况下处理是可以接受的。
【解决方案2】:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using CrystalDecisions;
using CrystalDecisions.CrystalReports;
using CrystalDecisions.CrystalReports.Engine;
 
namespace Test.Utilities
{
    public class ReportFactory
    {
        protected static Queue reportQueue = new Queue();
 
        protected static ReportClass CreateReport(Type reportClass)
        {
            object report = Activator.CreateInstance(reportClass);
            reportQueue.Enqueue(report);
            return (ReportClass)report;
        }
 
        public static ReportClass GetReport(Type reportClass)
        {
 
            //75 is my print job limit.
            if (reportQueue.Count > 75) ((ReportClass)reportQueue.Dequeue()).Dispose();
            return CreateReport(reportClass);
        }
    }
}

【讨论】:

    【解决方案3】:

    Crystal 打印引擎设计为默认打印作业限制为 75。一旦超过此限制,就会开始出现上述问题。

    通过更改注册表中的一个值很容易解决这个问题:

    HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Report Application Server\InprocServer

    欲了解更多信息,请查看以下链接

    http://scn.sap.com/community/crystal-reports-for-visual-studio/blog/2014/04/25/what-exactly-is-maximum-report-processing-job-limit-for-crystal-reports

    【讨论】:

    • 我更改了 PrintJobLimit 但似乎没有效果。至少对于正在运行的 IIS 池。
    猜你喜欢
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多