2012-01-12 17 views
0

我正在开发使用VS.Net 2010 &嵌入式CR这将在2008年MS和IIS 7上运行一个Web应用程序。 的功能之一是更新数据库记录(20-50〜),并在打印到每个记录的网络打印机水晶报表for循环。 (由于业务需要,报告必须逐一打印) 该功能在我的机器中正常工作。如果报告打印到PDF打印机,它也可以在服务器上运行。错误“错误应用程序w3wp.exe ......”在事件查看器中发现,如果打印水晶报表在一个循环中

然而,如果被印刷到物理网络打印机,标题错误在经过多次循环事件观看者提示;页面中没有返回异常,它只是停留在一个点上,页面加载直到超时。

我加在节目记录,发现循环可以停在任何地方,即创建一个新的水晶报表,设置报表数据源指定打印机名称,更新的记录...

下面的代码片段打印报表,很简单:

rptDoc.PrintOptions.PrinterName = strPrinterName; 

rptDoc.PrintToPrinter(intPrintCopy, false, 0, 0); 

如果上面的代码被注释,错误犯规发生任何更多的for循环可以完成每次不管多少条记录。

的断层模块可以是ntdll.dll的(最),CRPE32.DLL,KERNEL32.DLL,MSVCR80.DLL等;下面是捕获一些错误消息:

  • 错误应用程序w3wp.exe,版本7.0.6001.18000,时间戳0x47919ed8,错误模块ntdll.dll中,版本6.0.6001.18538,时间戳0x4cb73957,异常代码0000005,容错偏移0x0000000000046ef0,进程ID 0x%9,应用程序启动时间0x%10。

  • 错误应用程序w3wp.exe,版本7.0.6001.18000,时间戳0x47919ed8,错误模块KERNEL32.DLL,版本6.0.6001.18631,时间戳0x4da46d09,异常代码0xe0434352,故障偏移0x0000000000025efd,进程id 0x9c0,应用程序启动时间0x01ccd042bf90d940。

  • 错误的应用程序程序w3wp.exe,版本7.0.6001.18000,时间戳0x47919ed8,错误模块CRPE32.DLL,版本13.0.2.469,时间戳0x4eb91936,异常代码0000005,故障偏移0x00000000002948ea,进程ID为0x%9,应用开始时间为0x%10。

我不熟悉服务器和IIS的东西,但它似乎不是一个编程问题,因为它在计算机上工作正常。 任何人都可以给我一些想法?

非常感谢!

回答

0

经过试验和测试,我发现这其实是一个编码问题。 通用函数根据记录信息启动并返回报告文档对象(使用数据源集)。 它在循环中使用,因此太多的报表文档对象被启动并在IIS进程中崩溃。 这很可能是另一个水晶报告错误“最大报告处理作业限制”。但是,程序并没有抛出这个错误。事件查看器中的错误也让我分心。

现在,要解决这个问题,我发起的报告文件循环之前,在循环中更新其数据源,并在循环后设置它。