Unsupported Operation. A document processed by the

2019-01-22 19:20发布

This question already has an answer here:

when i deploy my asp.net website on windows server 2003 with oracle 10g database in backend.I am using sap crystal report version 13.0.2000.0 It gives error as

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.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[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

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

5条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-01-22 19:59

Re-install the "Crystal report engine" to the server and Build Action set to "Content"..

查看更多
戒情不戒烟
3楼-- · 2019-01-22 20:03

After try all above solution i got final solution is just copy your Crystal Report folder( where you save all crystal report into single directory) directly into location where you host you website. In my case it is c:/inetpub/www/xyz here xyz is publish folder.

查看更多
时光不老,我们不散
4楼-- · 2019-01-22 20:07

You will need to modify two properties in the .rpt files:

  1. Build Action is set to "Embedded Resource" by default. Change it to "Content".
  2. Copy to Output is set to "Do not copy" by default. Change it to "Copy always".

Rebuild, Build deployment package and Publish. Done!

查看更多
姐就是有狂的资本
5楼-- · 2019-01-22 20:13

If you have a Web Application

you have to modify the properties for the .rpt files:

  • Change Build Action to "Content" ("Embedded Resource" by default).
  • Change Copy to Output to "Copy always" ("Do not copy" by default).

If you don't want to change properties for each file, there's an easy way to default build action for non-default file-types.


If you have a Web Site

you have to flag "Allow this precompiled site to be updatable" inside "Publish WebSite" menu


In both Web Application and Web Site

you can, instead of doing previous steps

  • Not publish the report using the publish option, just copy them manually in publish folder.

and you must

  • Check if the reports exist and are accessible by the application (permissions, filepath,)

Good luck!

查看更多
看我几分像从前
6楼-- · 2019-01-22 20:24

I have got this same error message and have tried Googling and Googling and yet found the solution.

First, you have to check your ReportPath if is correct.

If you're using C#, this code might help:

//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();                                   
查看更多
登录 后发表回答