我正在使用 VS.Net 2010 和嵌入式 CR 开发一个 Web 应用程序,它可以在 MS 2008 和 IIS 7 上运行。其中一个功能是更新数据库记录(~20-50)并将水晶报告打印到网络打印机上for循环中的每条记录。(由于业务需要,报告必须一一打印)该功能在我的机器上运行良好。如果将报告打印到 PDF 打印机,它也可以在服务器上运行。
但是,如果打印到物理网络打印机,则在多次循环后在事件查看器中提示标题错误;页面中没有返回异常,它只是停在某个点并加载页面直到超时。
我在程序中添加了日志记录,发现循环可以在任何地方停止,即创建一个新的水晶报表,设置报表数据源分配打印机名称,更新记录......
下面是打印报表的代码片段,非常简单:
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,异常代码 0xc0000005,错误偏移量 0x0000000000046ef0,进程 id 0x%9,应用程序启动时间 x0 .
错误应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919ed8,错误模块 kernel32.dll,版本 6.0.6001.18631,时间戳 0x4da46d09,异常代码 0xe0434352,错误偏移量 0x0000000000025efd,进程 id 0901 0x9d9c04b.cc 9 dx 启动时间
错误应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919ed8,错误模块 crpe32.dll,版本 13.0.2.469,时间戳 0x4eb91936,异常代码 0xc0000005,错误偏移量 0x00000000002948ea,进程 ID 0x%9,应用程序启动时间 0%x .
我不熟悉服务器和 IIS 的东西,但这似乎不是编程问题,因为它在计算机上运行良好。任何人都可以给我一些想法?
非常感谢!