web-dev-qa-db-ja.com

JRCエンジンによって処理されたドキュメントをC ++スタックで開くことができません

Vs2010で.net4.0を使用してクリスタルレポートを作成しました。 Webサイトを公開すると、「JRCエンジンで処理されたドキュメントをC++スタックで開けません」というエラーがスローされます。 Webサイトをサーバーに公開し、クライアントからアクセスしようとしています。app_codeの.rptファイルを確認しましたが、同じエラーが再び発生しました。そこで、wwwrootフォルダーを作成し、そのフォルダーにasp_clientとwebサイトフォルダーを保持し、wwwrootへの物理パスを指定しました。クリスタルレポートを除くすべてが正常に動作しています。 .csファイルのコードは次のとおりです。

    ReportDocument rptDoc = new ReportDocument();
    DataSetForCrystalReport ds = new DataSetForCrystalReport();
    DataSetForCrystalReport dsHeader = new DataSetForCrystalReport();
    DataTable dt = new DataTable();
    DataTable dtHeader = new DataTable();
    dt.TableName = "dtBill";
    string ReceiptNo = Request.QueryString["ReceiptNo"];
    dt = getAllOrders(ReceiptNo).Tables[0];
    dtHeader = TblcompanysettingsService.GetOrganizationDetails();
    ds.Tables[1].Merge(dt);
    ds.Tables[2].Merge(dtHeader);
    rptDoc.Load(Server.MapPath("crBill.rpt"));
    rptDoc.SetDataSource(ds);
    CrystalReportViewer1.ReportSource = rptDoc;

エラーのスタックトレース:

[COMException (0x80041811): Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.]
   CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +147
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +422

[CrystalReportsException: Load report failed.]
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +549
   CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +1613
   CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +189
   GenerateBill.Page_Load(Object sender, EventArgs e) in e:\ShareFolder\Movie\wwwroot\Website\GenerateBill.aspx.cs:33
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064
28
sharad

.rptファイルへのパスを確認してください!エラーの説明は、実際の理由とは関係ありません。 .rptファイルが見つかりません!

私の場合、パスはReportsサブフォルダーにある.rptファイルのパスでなければなりませんでした。

Server.MapPath("~/Reports/InvoiceRegular.rpt");

私のために働いた。

47
serop

私のためのこの仕事

  1. Rptファイルを右クリックします。
  2. プロパティを選択してください
  3. かわった

    a。 「コンテンツ」としてのアクションの構築

    b。 「コピーしない」として出力ディレクトリにコピーします

    c。カスタムツールおよびカスタムツールネームスペースの場合は空にします

27
mcsimon

これが他の誰かに役立つかどうかはわかりませんが、この問題を抱えていました。 .rptファイルのファイル名を誤って入力しました...ファイル名に2つの単語の間にスペースがありました(通常、この理由だけでこれは行いません)が、コードに名前を含めると、スペースが残りましたでる。ファイル名を修正し、問題はなくなりました。

5
TotalMedia

これらの手順を実行するだけ

(1)「.rpt」ファイルを右クリックして、「Properties」を選択します

1.a)「Content」としてアクションをビルド

1.b)「常にコピー」として出力ディレクトリにコピー

(2).rptファイルへのパスを確認しますServer.MapPath( "Your path");

例:Server.MapPath("~/Reports/MyReport.rpt");

注:レポートビューアーのrptとaspxページの両方が同じフォルダーにある場合は、絶対パスを指定する必要はなく、Server.MapPathでfilename.rptのみを指定できます。

5
Arun CM

ソリューションを見つけたのは、最初に独自のクリスタルレポートでVisual Studio 2005を使用してから、SAPからダウンロードした別のクリスタルレポートでVS2010にアップグレードしたときでした。私はSAPから調査して見つけました。

Crystal Reportsの各バージョンには固有のランタイムがあり、正しくデプロイする必要があるため、デプロイされたランタイムがプロジェクトで参照されるVisual Studio .NETのCr​​ystal Reportsアセンブリと一致することが重要です。

だから私は以前のバージョンをアンインストールし、1つのバージョンのみを使用し、それが機能しました。 :) ta.speot.isに感謝します。これはコーディングの問題ではありませんでした。

3
sharad

フォルダー(aspnet_client)を(C:\ inetpub\wwwroot)からWebサイトフォルダーにコピーして貼り付け、.rptファイルが同じフォルダーにあることを確認します。

1
shams Eldin

前述の@seropのように、ファイルパスが正しいことを確認してください。また、レポートフォルダーが公開されない場所にも気付きました。そのため、レポートフォルダーを手動で公開する必要がありました。

1
RAM4

このかなり役に立たないエラーが表示される状況の別のセットを見つけました。

Visual StudioでWebアプリケーションを実行/デバッグするためにF5キーを押しても、Crystal Reports(2011)でレポートが開いたままの場合、エラーが発生します。

今日は1時間ほどおかしくなりました!

1
Krayg

.rptファイル(crystlレポートテンプレート)をローカルマシンから特定のサーバー/マシンのフォルダーにコピーするだけで、CrystalDecisions.Shared.CrystalReportsException:レポートのロードに失敗する問題を解決できると確信しています。

私にとってはうまく機能し、サーバー側でエラーは発生しませんでした。私のアプリケーションは、コードに従ってパスを共有するためにpdfファイルを保存することができます。

1
SRoy

作業:ローカルマシンから.rptファイルをコピーすると、ホスト上の.rptファイルが上書きされ、正常に動作します。

これはちょうど私に起こりました、そして、数時間の頭痛の後、私はそれがファイル許可問題であるとわかりました。何らかの理由で、CR devサーバーから共有のカスタム.rptディレクトリにコピーするとき、ファイルのアクセス許可はすべてジャッキアップされ、いくつかのユーザーグループのアクセス許可をファイルに追加し直す必要がありました。

1
JTH

。rptファイルが存在するかどうかを確認してください。そうでない場合は、ローカルからホスティングフォルダーにコピーしてください。作業が開始されます。

0
Debendra Dash