web-dev-qa-db-fra.com

Opération non prise en charge. Un document traité par le moteur JRC ne peut pas être ouvert dans la pile C ++

lorsque je déploie mon site Web asp.net sur Windows Server 2003 avec la base de données Oracle 10g dans le backend.J'utilise la version 13.0.2000.0 du rapport SAP Crystal.

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.

Erreur source:

Une exception non gérée a été générée lors de l'exécution de la demande Web actuelle. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées à l'aide de la trace de pile d'exceptions ci-dessous.

Trace de la pile:

[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

Informations sur la version: Microsoft .NET Framework Version: 4.0.30319; Version ASP.NET: 4.0.30319.1

19
Rupesh Deshmukh

Si vous avez une application Web

vous devez modifier les propriétés des fichiers .rpt :

  • Remplacez l'action de génération par "Contenu" ("Ressource intégrée" par défaut).
  • Remplacez Copier par sortie par "Copier toujours" ("Ne pas copier" par défaut).

Si vous ne souhaitez pas modifier les propriétés de chaque fichier, il existe un moyen simple de action de génération par défaut pour les types de fichiers non par défaut.


Si vous avez un site Web

vous devez marquer "Autoriser la mise à jour de ce site précompilé" dans le menu "Publier le site Web"


Dans l'application Web et le site Web

vous pouvez, au lieu de faire les étapes précédentes

  • Ne pas publier le rapport à l'aide de l'option de publication, il suffit de les copier manuellement dans le dossier de publication.

et tu dois

  • Vérifiez si les rapports existent et sont accessibles par l'application (autorisations, chemin de fichier,)

Bonne chance!

35
Emanuele Greco

Vous devrez modifier deux propriétés dans les fichiers .rpt:

  1. Build Action est défini sur "Embedded Resource" par défaut. Remplacez-le par "Conten".
  2. Copier vers la sortie est défini sur "Ne pas copier" par défaut. Changez-le en "Copiez toujours".

Reconstruisez, créez le package de déploiement et publiez. Terminé!

5
aleafonso

J'ai ce même message d'erreur et j'ai essayé Googling et Googling et pourtant trouvé la solution.

Tout d'abord, vous devez vérifier votre ReportPath si c'est correct.

Si vous utilisez C #, ce code peut vous aider:

//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