2012-01-12 17 views
0

MS 2008とIIS 7で実行されるVS.Net 2010 & CRを使用してWebアプリケーションを開発しています。 関数の1つは、データベースレコードを更新し(〜20-50)、forループ内の各レコードのネットワークプリンタにクリスタルレポートを出力することです。 (ビジネスニーズのため、レポートを1つずつ印刷する必要があります) 私のマシンでは正常に機能しています。レポートがPDFプリンタに印刷されている場合は、サーバー上でも動作します。エラーCrystal Reportをループで印刷すると、イベントビューアで「w3wp.exe ...が見つかりません」というメッセージが表示される

ただし、物理ネットワークプリンタに印刷された場合、キャプション付きエラーはいくつかのループの後でイベントビューアでプロンプトを表示します。ページ内で例外が返されず、タイムアウトまでポイントとページで停止します。

私は、プリンタ名を割り当てるレポートデータソースを設定し、更新されたレコードを新しいCrystalレポートを作成する、すなわち、プログラムにログインを追加し、ループがどこかで停止できることが分かっ...以下

は、内のコードの断片であります、非常に簡単なレポートを印刷:上記のコードはコメントしている場合は

rptDoc.PrintOptions.PrinterName = strPrinterName; 

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

は、エラーが任意のより多くのと、どんなに多くのレコードを毎回を完了することはできませんforループが起こるdoesntの。

フォルトが発生するモジュールは、ntdll.dll(ほとんどの場合)、crpe32.dll、kernel32.dll、MSVCR80.dllなどです。以下にいくつかのエラーメッセージが捕獲されています

  • は、モジュールntdll.dllを、バージョン6.0.6001.18538、タイムスタンプ0x4cb73957、例外コード0xc0000005でのフォールト、アプリケーションのw3wp.exe、バージョン7.0.6001.18000、タイムスタンプ0x47919ed8をフォールティング、障害オフセット0x0000000000046efef0、プロセスID 0x%9、アプリケーション開始時刻0x%10

  • 障害が0x0000000000025efdオフセットアプリケーションのw3wp.exe、バージョン7.0.6001.18000、タイムスタンプ0x47919ed8、フォールトモジュールKERNEL32.DLL、バージョン6.0.6001.18631、タイムスタンプ0x4da46d09、例外コード0xe0434352、プロセスID 0x9c0、アプリケーション開始時刻フォールティング0x01ccd042bf90d940。

  • アプリケーションのw3wp.exe、バージョン7.0.6001.18000、タイムスタンプ0x47919ed8、フォールトモジュールcrpe32.dllのバージョン、バージョン13.0.2.469、タイムスタンプ0x4eb91936、例外コード0xc0000005で、障害オフセット0x00000000002948ea、プロセスID 0X%9、アプリケーションフォールティング開始時刻は0x%10です。

私はサーバーやIISのものに慣れていませんが、コンピュータで正常に動作するため、プログラミングの問題ではないようです。 誰でも私にいくつかのアイデアを伝えることができますか?

ありがとうございます!

答えて

0

テストとテストの後、私はこれが実際にコーディングの問題であることを発見しました。 レコード情報に基づいて(データソースセットを使用して)レポートドキュメントオブジェクトを開始および返す汎用関数が作成されます。 これはループで使用されるため、あまりにも多くのレポートドキュメントオブジェクトが開始され、IISプロセスがクラッシュします。 これは、別のクリスタルレポートのエラー「最大レポート処理ジョブ制限」を報告する可能性があります。しかし、プログラムはこのエラーをスローしませんでした。イベントビューアのエラーも私の気を散らしました。

問題を解決するために、私はループの前にレポートドキュメントを開始し、そのデータソースをループ内で更新し、ループの後に配置します。

関連する問題