web-dev-qa-db-fra.com

Erreur Crystal Reports pour Visual Studio 2010

J'essaie d'exécuter un rapport Crystal à partir de mon application Web construite à l'aide d'ASP.NET 4.0 et de Visual Studio 2010. J'ai installé les éléments suivants à partir du site SAP ( http://www.businessobjects.com/jump/xi /crvs2010/us2_default.asp )

1) SAP Crystal Reports, version pour Visual Studio 2010 - Package d'installation EXE standard qui installe le logiciel dans l'EDI de Visual Studio.

2) Moteur d'exécution SAP Crystal Reports pour .NET Framework 4 (64 bits)

J'ai une page appelée Reports.aspx dans laquelle j'ai un contrôle Crystal Report Viewer

 <CR:CrystalReportViewer ID="rptViewer" runat="server" AutoDataBind="true" />

Dans le fichier Reports.aspx.cs, j'ai le code suivant:

protected override void OnPreRender(EventArgs e)
{
    ReportDocument report = new ReportDocument();
    var path = Server.MapPath("Reports/Sample.rpt");
    report.Load(path);
    report.SetDatabaseLogon("username", "password", "servername", "databasename");
    rptViewer.ReportSource = report;
}

Sur la ligne report.Load (path), l'erreur suivante apparaît:

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

Comment puis-je réparer cela?

17
Kumar

assurez-vous que le rapport est dans le dossier app_code en initialiser une nouvelle instance au lieu d’initialiser un document de rapport et d’y charger le rapport.

Sample report = new Sample();

cela a fonctionné pour moi

10
Ali Tarhini

J'ai également eu le même problème, mon problème était que le chemin du rapport n'était pas valide. Peut-être avez-vous le même problème, vérifiez Server.MapPath ("Reports/Sample.rpt") retournant un chemin valide? 

13
Priyan R

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

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

Reconstruire, construire le package de déploiement et publier. Terminé!

6
aleafonso

REMARQUE: ci-dessous, le terme "site Web" fait référence aux nœuds de site Web réels dans IIS, PAS à un répertoire virtuel au sein d'un site Web. 

Problème lié à la cause: Il n'y a pas de dossier "aspnet_client" accessible par l'application.
Cela peut se produire pour plusieurs raisons:

  1. Dans la mesure où le programme d'installation de SAP CR semble installer le dossier aspnet_client dans le dossier ...\inetpub\wwwroot \, si le chemin physique de votre site Web n'est PAS ...\inetpub\wwwroot, votre application n'aura pas accès au dossier aspnet_client.
  2. Si le dossier aspnet_client a été déplacé ou supprimé du dernier niveau du chemin physique de votre site Web, votre application IIS n'aura pas accès au dossier. 

Problème solution (pour Windows Server 2008 R2)

  1. Accédez au gestionnaire IIS sur votre serveur. 
  2. Développez le noeud de vue en arborescence du site Web exécutant votre application. 
  3. Examinez le niveau immédiatement sous le nœud du site Web et assurez-vous de voir un dossier "aspnet_client". 
  4. Si vous voyez le dossier, alors peut-être que cette cause fondamentale n’est pas la cause de votre problème. 
  5. Si vous ne voyez PAS le dossier, recherchez-le sur le disque dur du serveur et copiez-le sur le chemin physique du site Web. 
  6. Cliquez avec le bouton droit de la souris sur le nœud du site Web, puis sur Actualiser dans le menu contextuel. 
  7. Vous devriez maintenant voir le dossier aspnet_client au niveau directement sous le nœud de votre site Web et les rapports dans l'application devraient fonctionner.
5
George

Je me suis heurté à cela lorsque j'ai converti un site Web en application Web. Le rapport fonctionnerait correctement sur ma machine de développement, mais pas sur le serveur. Puis j'ai réalisé que le fichier rpt était manquant sur le serveur!

Par défaut, les fichiers de rapport étaient considérés comme des ressources incorporées et n'étaient pas copiés lors de la publication de l'application Web. Je viens de les changer individuellement, de republier le site et tout allait bien à nouveau.

3
Ken Pespisa

Cette erreur est un vrai régal et semble avoir de nombreux antécédents possibles. Heureusement, je n'ai perdu qu'une journée sur ma variante particulière:

ReportDocument.Load() crée également une copie temporaire locale. (Cela peut n'être que dans le cas d'une charge provenant d'un emplacement de lecteur réseau, je ne l'ai pas testé dans le cas d'une charge locale.) 

Si le contexte utilisateur dans lequel le chargement se produit n'a pas le droit de créer le fichier temporaire localement, Load échouera avec la même erreur très inutile.


En outre, j'ai fini par diagnostiquer ceci avec Process Monitor . Cela pourrait vous être utile également.

2
Marc L.

J'ai également eu un échec de chargement de rapport si j'ai laissé par erreur le fichier de rapport ouvert dans Crystal Reports Designer.

2
Jon

Assurez-vous que les fichiers de votre rapport se trouvent dans leur dossier d'origine. J'ai eu la même erreur en premier, après avoir "publié" mon site Web MVC sur IIS. Je n'avais pas réalisé que "Publier" n'avait pas mis de fichiers rpt dans le paquet. 

0
user477864
  1. Réinstallez le "moteur de rapport Crystal" sur le serveur.

  2. Action de construction définie sur "Contenu".

Cela a parfaitement fonctionné pour moi ..!

0
ErandaK