2010-04-21 11 views
0

Nous avons une application .NET Winforms qui héberge le contrôle Crystal Reports Viewer (version XI). Cela fonctionne bien pour la plupart, mais quand une exportation de données de la visionneuse est effectuée l'application va se bloquer à la sortie et dans non managé code. Le message d'erreur n'est pas très utile et indique simplement qu'un emplacement de mémoire incorrect a été accédé. Aucune autre information telle qu'une DLL spécifique n'est fournie. Après, le visualiseur est utilisé pour exporter un rapport au format CSV, XML, etc. Je suppose qu'à un moment du processus d'exportation, Crystal crée une ressource qui tente une action sur une fenêtre parent. (peut-être) qui n'existe plus.L'application hébergeant Report Viewer se ferme brutalement après l'exportation

J'ai vu un certain nombre de problèmes de fuite et d'arrêt de mémoire avec Crystal, mais celui-ci est nouveau. Quelqu'un at-il vu et trouver une solution de contournement ou a des idées pour des solutions de contournement? Jusqu'à présent, nous avons essayé de disposer explicitement de tous les objets liés aux cristaux, en réglant sur null et en réglant même un cycle Thread.Sleep lors de l'arrêt pour "donner le temps à Crystal de nettoyer".

Mise à jour:

  • L'accident ne se produit que sur l'arrêt (donc pas immédiat)
  • Tous les formats d'exportation fonctionnent
  • Tous les fichiers d'exportation sont créés correctement
  • CR est installé sur la même machine comme l'application .NET d'hébergement
  • pas sûr de l'exportation de l'IDE ... est-ce encore possible?
+0

L'accident se produit-il immédiatement? Est-ce que le fichier est créé? Est-ce que l'un des formats d'exportation fonctionne? Avez-vous essayé d'installer CR sur la même machine que l'application .Net? Est-ce que les exportations de l'environnement de conception s'écrase? – craig

+0

pouvez-vous poster du code, en particulier comment vous ouvrez l'application et chaque rapport, et comment vous fermez la même chose? – craig

+0

Avez-vous trouvé une solution de contournement ou une meilleure façon de gérer ce problème pour le moment? J'ai un problème similaire, mais un contrôle ActiveX totalement différent. –

Répondre

-1

Vérifiez votre code pour vous assurer que vous ouvrez l'objet Crystal Application uniquement une fois pendant le cycle de vie de votre application. Cela empêchera l'utilisation excessive de la mémoire, l'utilisation qui peut provoquer vos plantages. Évidemment, vous pouvez ouvrir et fermer des rapports à volonté.

Questions connexes