cancel
Showing results for 
Search instead for 
Did you mean: 

CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded

Former Member
0 Kudos

Hi there,

I am trying to use the Production Release of CR4VS2010 as found here:

Whenever I try to run a report I get the following exception:

Load report failed.

Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.

at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()

at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)

at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)

If I try to use the Database Expert or Set the Database Location for a report VS2010 simply hangs.

If I look in the event log, I see a Crystal Reports error:

The description for Event ID ( 4353 ) in Source ( Crystal Reports ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: The keycode assembly, BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded.

If I perform Code Analysis on my solution, I get this warning:

Warning 4 CA0060 : The indirectly-referenced assembly 'BusinessObjects.Licensing.KeycodeDecoder, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' could not be found. This assembly is not required for analysis, however, analysis results could be incomplete. This assembly was referenced by: C:Program FilesSAP BusinessObjectsCrystal Reports for .NET Framework 4.0CommonSAP BusinessObjects Enterprise XI 4.0win32_x86dotnetCrystalDecisions.CrystalReports.Engine.dll.

My environment is:

Windows XP SP3

VS2010 Ultimate

I have other versions of CR installed

I am targetting Framework 3.5 SP1 (Full)

I have seen similar errors published with the Beta version and no real solution to them.

I have to have side by side versions of VS and CR together.

I am developing internal apps which will be deployed on servers where there will be side by side versions of VS

Can anyone help please???

Thanks,

James

Accepted Solutions (1)

Accepted Solutions (1)

former_member183750
Active Contributor
0 Kudos

Installing the Beta version on production or development boxes was never recommended so, we'll have to clean up the Beta first. See [this|; thread for details. Note; you will have to uninstall the beta, uninstall the rtm, do a manual clean up as described in the above thread, then reinstall rtm.

Re the keycodedecoder. This is a known issue. Track number ADAPT01500142, The issue is assigned for SP 1 (end of February). Please note that this is not a guarantee that the fix will be in SP 1. Also, the issue does not impact any functioning of the print engine.

Note that this issue is not the root cause of the error;

Load report failed.

Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.

Ludek

Follow us on Twitter http://twitter.com/SAPCRNetSup

Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports]

Former Member
0 Kudos

Hi Ludek,

Thanks for the swift response... however:

1) I've never installed the beta of CR4VS2010... so that is not my issue.

2) How do I view details of ADAPT01500142?? I cannot see any links to a "known issues log".

3) You say that this is not the root cause of the error. What is the root cause??? Is it in the details for ADAPT01500142??

4) At the moment CR4VS2010 simply does not work. Unless there is a workaround, I will have to recreate the project in VS2005 (our other supported environment here), as I have to get code out of the door long before a possible fix arrives in SP1 in February 2011!!

Any further help/info would be gratefully appreciated!

Many thanks,

James

former_member183750
Active Contributor
0 Kudos

Hi James:

Apologies for the Beta comment, but I saw this:

I have seen similar errors published with the Beta version and no real solution to them.

So, I think that was a relatively safe assumption. But assumptions often do come back to haunt us :).

Anyhow, You can not see the ADAPT. But in any case, as I said, it has nothing to do with your issue. The ADAPT only addresses the BusinessObjects.Licensing.KeycodeDecoder.dll issue, not the Load report failed error.

What is the root cause? Not a clue. But there is no relationship between the errors.

So, letting go of BusinessObjects.Licensing.KeycodeDecoder.dll:

Is this a web app or a win app? WPF?

Using [Process Monitor|http://technet.microsoft.com/en-ca/sysinternals/bb896645.aspx] to see what is happening at the point of load report will be good.

What is the OS?

Can you reproduce the issue with any sample app from [here|https://wiki.sdn.sap.com/wiki/display/BOBJ/CrystalReportsfor.NETSDK+Samples]?

Can you try this on another computer?

Ludek

Former Member
0 Kudos

Hi Ludek,

We're getting there... taking your suggestion about using the samples... they worked fine.

So I started digging deeper... I'm using code such as...

using (var report = new ReportDocument())

{

report.Load(filename);

}

I need to do this because even though I have a "correctly designed" report when developing, the business might need to alter the layout at a later date. So I need to pick up whatever is on disk at the time.

So I look in a subfolder of the deployed project for the .rpt file.

And here's where things were going wrong at runtime...

There was a SILLY bug in my code such that I wasn't picking up the correct folder... i.e. File.Exists(filename) == false

So here is some sample code that demonstrates the problem:

namespace MisleadingExceptionConsoleApp

{

class Program

{

static void Main(string[] args)

{

using (var report = new CrystalDecisions.CrystalReports.Engine.ReportDocument())

{

report.Load(@"c:\temp\a_report_that_does_not_exist.rpt");

}

}

}

}

When you run this, you get:

- ex {"Load report failed."} System.Exception {CrystalDecisions.Shared.CrystalReportsException}

+ [CrystalDecisions.Shared.CrystalReportsException] {"Load report failed."} CrystalDecisions.Shared.CrystalReportsException

+ Data {System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}

HelpLink null string

- InnerException {"Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack."} System.Exception {System.Runtime.InteropServices.COMException}

+ [System.Runtime.InteropServices.COMException] {"Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack."} System.Runtime.InteropServices.COMException

+ Data {System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}

HelpLink null string

+ InnerException null System.Exception

Message "Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack." string

Source "clientdoc.dll" string

StackTrace " at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)\r\n at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)\r\n at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()" string

+ TargetSite {Void Open(System.Object ByRef, Int32)} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}

+ Static members

+ Non-Public members

Message "Load report failed." string

Source "CrystalDecisions.CrystalReports.Engine" string

StackTrace " at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()\r\n at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)\r\n at CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)\r\n at MisleadingExceptionConsoleApp.Program.Main(String[] args) in g:
Projects
MisleadingExceptionConsoleApp
MisleadingExceptionConsoleApp
Program.cs:line 18" string

+ TargetSite {Void EnsureDocumentIsOpened()} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}

+ Static members

+ Non-Public members

So to my mind, the InnerException here ("Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.") is wrong and incredibly misleading!!! :O)

So that answers my runtime issue.

I still cannot open the Database Expert at design time... however, that is not a pressing issue for me right now.

But if you do have any ideas on how to determine the root cause I'd like to get that sorted too.

Many thanks,

James

former_member183750
Active Contributor
0 Kudos

I absolutely agree on the error message. How silly can you get (and I'm being nice with my description...). Load Report Failed should be it - and was it in CR 2008 and previous. I'll talk to the Program Management group on that. Re. the database expert... There are other posts but no solution / no way for us to reproduce. But perhaps as time rolls we'll figure this one out before it becomes a critical issue.

Ludek

Former Member
0 Kudos

Thanks Ludek.

It seems like the Report Wizard doesn't work either... it just hangs VS2010 for me!

Is there anything I can do here to get you any useful information??

Regards,

James

former_member183750
Active Contributor
0 Kudos

Yah, that is the behavior reported in a few threads on the forums. Both the report wiz and the database wiz don't work on some installs. Have not see a solution to either yet, nor have I been able to reproduce.

When you are trying to go to the report wiz, are you in a web app or a win app? C# or VB?

Umm, and TS fav; have you tried to do a repair on VS2010 (sorry - had to...).

Ludek

Former Member
0 Kudos

I'm getting exactly the same error when attempting to load the report via ReportDocument.Load

The error shown in browser is

"Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack."

However in event viewer there is the error

The description for Event ID 4353 from source Crystal Reports cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event:

The keycode assembly, BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded.

the message resource is present but the message is not found in the string/message table

Also in event viewer is the warning

Exception information:

Exception type: CrystalReportsException

Exception message: Load report failed.

I'm running windows 7 ultimate 64 bit and downloaded the latest crystal for vs2010.

I'm having no problems editing the report and using wizards though, these are fine, its just loading the report in code causing the issue.

Edited by: dnolan on Dec 13, 2010 11:08 AM

former_member183750
Active Contributor
0 Kudos

The keycode assembly, BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded.

- The above error is documented a number of times as well as a note that this is tracked and will be resolved in SP1. The error / warning does not interfere with the project in any way. This is also noted on these forums a number of times.

"Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack."

- Ensure your report load path is correct. Try to load the report by hardcoding the path to the report.

Ludek

Former Member
0 Kudos

However the keycode DLL is still missing. Please see http://scn.sap.com/thread/2153539

Former Member
0 Kudos

There is now a permanent fix in the latest Sandcastle to process Dot Net projects that include Crystal Reports - please see the post http://geekswithblogs.net/TATWORTH/archive/2012/10/12/sandcastle-help-file-builder---october-2010-re...

The latest Sandcastle download is at http://shfb.codeplex.com/releases/view/92191

Answers (3)

Answers (3)

0 Kudos

The "Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack" InnerException also occurs if the file exists but the user account does not have read permission on the file.

This occurs if you are running under IIS and have not granted permission on the .RPT file to the IUSR / IIS_WPG user accounts.

Former Member
0 Kudos

This problem can be resolved by creating a new report from an existing report in cr4vs2010. After saving the report, the information for JRC engine will be discarded.

Former Member
0 Kudos

In Visual Studio 2010, when publishing my web application, the ONLY way that I've been able to avoid this error message is by checking the checkbox "Allow this precompiled site to be updatable". This is under Build --> Publish in Visual Studio 2010. The unfortunate thing here is that my website cannot be fully compiled, and runs slower than if it was fully compiled. Can anyone assist me in allowing avoiding this error with a fully compiled ASP.NET web application? To the moderator, this issue is not resolved. Thank you.

former_member183750
Active Contributor
0 Kudos

Wait for SP2 - should be out by end of this month.

If that does not help, please create a new thread with as much information as possible as well as a link to this thread.

- Ludek

Former Member
0 Kudos

I was able to repeat this bug on IIS7.0. Visual Studio 2010 by default does not deploy the .rpt definition files. So I just xcopied these to IIS and this removed the error.

Former Member
0 Kudos

You do not need to copy the files, as they are embedded resources. To fix, instead of instantiating your report as follows:


using (var invoiceDetailReport = new ReportDocument())
{
    invoiceDetailReport.Load(...path to InvoiceDetailReport.rpt...);
}

try this:


using (var invoiceDetailReport = new InvoiceDetailReport())
{
    // no need to "Load" the report, as you are using the strongly typed class generated from the .rpt file.
}

Regards,

Jeremy

[http://tiffanyandjeremy.com]