Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Crystal report崩溃应用程序打印多个报告_C#_.net_Winforms_Crystal Reports - Fatal编程技术网

C# 使用Crystal report崩溃应用程序打印多个报告

C# 使用Crystal report崩溃应用程序打印多个报告,c#,.net,winforms,crystal-reports,C#,.net,Winforms,Crystal Reports,我有一个WinForms应用程序(.net 4.0,x86)和Crystal Reports(13.0.15)。我想使用Crystal报表打印多个文档(在报表查看器上看不到它们-直接在打印机上) 每次打印48份报告,在第49次打印时,我遇到异常System.ComponentModel.Win32Exception,句柄在开始打印时无效(System.Drawing.Printing.PrintDocument、System.Drawing.Printing.PrintEventArgs) 我尝

我有一个WinForms应用程序(.net 4.0,x86)和Crystal Reports(13.0.15)。我想使用Crystal报表打印多个文档(在报表查看器上看不到它们-直接在打印机上)

每次打印48份报告,在第49次打印时,我遇到异常
System.ComponentModel.Win32Exception,句柄在开始打印时无效(System.Drawing.Printing.PrintDocument、System.Drawing.Printing.PrintEventArgs)

我尝试了另一套文档,但在打印时仍有例外

我试图将PrintJobLimit更改为9000以上,但没有任何帮助

接下来,我尝试在打印后处理报告:

foreach (var document in documents )
{
  using (ReportDocument report=GenerateReport(document.id))
  { 
    report.PrintToPrinter(printerSettings, pageSettings, false);
  }
}
但现在程序在打印第28次报告之前崩溃,我无法捕获异常(程序停止工作)。只有在事件查看器中才显示有关应用程序错误的信息(
出错模块名称:ntdll.dll
)。 我尝试了不同的东西(以及它们的组合):

打印后,即使是
GC.Collect()
,但仍然不起作用。 有人有办法吗

foreach (var document in documents )
{
  using (ReportDocument report=GenerateReport(document.id))
  { 
    report.PrintToPrinter(printerSettings, pageSettings, false);
  }
}
    report.Close();

    report.Dispose();

    report=null;