web-dev-qa-db-ja.com

サポートされていない操作です。 JRCエンジンで処理されたドキュメントをC ++スタックで開くことができない

バックエンドでOracle 10gデータベースを使用してWindows Server 2003にasp.net Webサイトを展開すると、SAP Crystal Reportバージョン13.0.2000.0を使用しています。

Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ 
stack.Description: An unhandled exception occurred during the execution of the current web request.
Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.

ソースエラー:

現在のWeb要求の実行中に、未処理の例外が生成されました。例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。

スタックトレース:

[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) +95
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +270

[CrystalReportsException: Load report failed.]
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +333
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +877
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +84
WEBPAGES_srccustomerbill2.setdatasource() +2270
WEBPAGES_srccustomerbill2.Page_Load(Object sender, EventArgs e) +233
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.0.30319.1

19
Rupesh Deshmukh

Webアプリケーションがある場合

.rptファイルのプロパティを変更する必要があります。

  • ビルドアクションを「コンテンツ」(デフォルトでは「埋め込みリソース」)に変更します。
  • 「出力へのコピー」を「常にコピー」に変更します(デフォルトでは「コピーしない」)。

各ファイルのプロパティを変更したくない場合は、デフォルト以外のファイルタイプのデフォルトのビルドアクションにする簡単な方法があります。


あなたがウェブサイトを持っているなら

flag "このプリコンパイル済みサイトを更新可能にする""Publish WebSite"メニュー内で行う必要があります


WebアプリケーションとWebサイトの両方

前の手順を実行する代わりに、できます

  • 公開オプションを使用してレポートを公開しない、それらを手動でコピーする公開フォルダーに。

そしてあなたは

  • レポートが存在し、アプリケーションからアクセス可能かどうかを確認します(権限、ファイルパス、)

幸運を!

35
Emanuele Greco

.rptファイルの2つのプロパティを変更する必要があります。

  1. ビルドアクションは、デフォルトで「組み込みリソース」に設定されています。 「コンテンツ」に変更します。
  2. 出力にコピーはデフォルトで「コピーしない」に設定されています。 「常にコピー」に変更します。

再構築、展開パッケージの構築、公開。できた!

5
aleafonso

私はこれと同じエラーメッセージを受け取り、グーグルとグーグルを試しましたが、解決策を見つけました。

まず、正しいかどうかReportPathを確認する必要があります。

C#を使用している場合、このコードが役立つ可能性があります。

//declare new report
ReportDocument rpt = new ReportDocument();                  
//load your report
rpt.Load(Server.MapPath("crMembers.rpt"));                  
//set your datasource
rpt.Database.Tables[0].SetDataSource(m.GetReportSource());  
//set your report for the viewer
crviewer.ReportSource = rpt;                                
//refresh the viewer
crviewer.RefreshReport();                                   
3
senzafine