MS 2008およびIIS 7で実行されるVS.Net 2010および組み込みCRを使用してWebアプリを開発しています。機能の1つは、データベースレコード(〜20-50)を更新し、Crystalレポートをネットワークプリンターに印刷することです。 for ループ内の各レコード。(ビジネス上の必要性から、レポートは 1 つずつ印刷する必要があります) 私のマシンでは機能は正常に動作します。レポートが PDF プリンターに印刷される場合、サーバー上でも機能します。
ただし、物理ネットワーク プリンターに印刷された場合は、数回ループした後、キャプション付きのエラー メッセージがイベント ビューアーに表示されます。ページで例外が返されず、ある時点で停止し、タイムアウトになるまでページが読み込まれます。
プログラムにロギングを追加したところ、どこでもループが停止することがわかりました。つまり、新しい Crystal レポートの作成、レポート データ ソースの設定、プリンタ名の割り当て、レコードの更新などです。
以下は、レポートを印刷する際のコードの一部で、非常に単純です。
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、アプリケーション開始時刻.
障害が発生しているアプリケーション w3wp.exe、バージョン 7.0.6001.18000、タイム スタンプ 0x47919ed8、障害が発生しているモジュール kernel32.dll、バージョン 6.0.6001.18631、タイム スタンプ 0x4da46d09、例外コード 0xe0434352、障害オフセット 0x0000000000025efd、プロセス ID 0x9c04c02.04fcc0d9b9d04 アプリケーション開始時刻
障害のあるアプリケーション w3wp.exe、バージョン 7.0.6001.18000、タイム スタンプ 0x47919ed8、障害のあるモジュール crpe32.dll、バージョン 13.0.2.469、タイム スタンプ 0x4eb91936、例外コード 0xc0000005、障害オフセット 0x00000000002948ea、プロセス ID 0x%9、アプリケーション開始時刻 0x%1 .
私はサーバーと IIS に精通していませんが、コンピューター上で正常に動作するため、プログラミングの問題ではないようです。誰でも私にアイデアを与えることができますか?
どうもありがとう!