13 Replies Latest reply: Oct 12, 2012 12:58 PM by Clive Chinery RSS

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

James Driscoll
Currently Being Moderated

Hi there,

 

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

Crystal Reports for Visual Studio 2010 Production Release Now Available

 

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

  • Re: CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded
    Ludek Uher
    Currently Being Moderated

    Installing the Beta version on production or development boxes was never recommended so, we'll have to clean up the Beta first. See [this|Uninstalling Crystal for vs2010 beta; 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]

    • Re: CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded
      James Driscoll
      Currently Being Moderated

      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

      • Re: CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded
        Ludek Uher
        Currently Being Moderated

        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

        • Re: CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded
          James Driscoll
          Currently Being Moderated

          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

  • Re: CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded
    bob thecoder
    Currently Being Moderated

    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.

  • Re: CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded
    Celine Xie
    Currently Being Moderated

    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.

  • Re: CR4VS2010 - BusinessObjects.Licensing.KeycodeDecoder.dll, cannot be loaded
    Alan Singfield
    Currently Being Moderated

    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.

Actions