Intermittent Crystal Reports d'erreur “La requête n'a pas pu être soumis pour traitement en arrière-plan.”
Nous sommes à court de Crystal Reports sur un ordinateur Windows Server 2008 avec .NET framework 3.5 SP1.
J'ai vu beaucoup de causes de l'erreur générale "La requête n'a pas pu être soumis pour traitement en arrière-plan." sur d'autres forums, mais ils ont tendance à être persistant et reproductibles affectant un seul rapport dû à un problème de mise en forme avec un rapport spécifique.
Nous assistons à cette erreur avec le dessous de la trace de la pile, de façon intermittente.
- Il affecte de nombreux différents rapports que nous avons.
- Affecte un rapport particulier plus fréquemment que les autres rapports.
- Une fois qu'un rapport est affecté de la même erreur apparaissent souvent dans plusieurs rapports à peu près en même temps par exemple. pour les 10 prochaines minutes.
- Le même rapport exécuter avec les mêmes paramètres de travail lorsque vous exécutez à nouveau (peu après) ou l'application peut être nécessaire de redémarrer avant que le rapport ne peut être renouvelé exécuter.
Ces rapports ont tous travaillé auparavant sans problème. Pas de changement de serveur ou de code semble évident qui aurait précipité cette erreur. Tout le code derrière pour ce qui est VB.NET
Nous avons eu de la difficulté à le reproduire dans des environnements de test et de mise à niveau vers la dernière version de Crystal n'a pas aidé du tout.
Toute aide ou suggestion que vous pourriez être en mesure de faire pour résoudre ce problème serait appréciée.
"The request could not be submitted for background processing."
at CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.ReplaceConnection(Object oldConnection, Object newConnection, Object parameterFields, Object crDBOptionUseDefault)
at CrystalDecisions.CrystalReports.Engine.Table.SetDataSource(Object val, Type type)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
--- End of inner exception stack trace ---
at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet)
at "USER CODE"
- Avez-vous jamais obtenir n'importe où avec ça? Nous souffrons de la même question.
Vous devez vous connecter pour publier un commentaire.
Après de nombreux jours, j'ai enfin découvert ce qu'est la racine du problème, dans le cas où vous êtes, y compris des images jpg dans votre rapport.
Le truc, c'est que le CR de VS2008 ou versions ultérieures, ne peut pas gérer les fichiers jpg en mode CMJN. CR seul peut gérer les fichiers jpg en mode RVB.
C'est drôle que les versions inférieures de CR (celui qui est venu avec VS2003) peut gérer n'importe quel type de fichiers jpg. Merci, Cristal.
Isoler le rapport de la génération de code.
Notre résolution finale a été de prendre le code qui génère le rapport et de le déplacer dans son propre isolé service. Notre service d'origine, puis appelle notre nouveau Cristal de service avec les paramètres pertinents et Cristal de fichier RPT. C'est évidemment une solution assez coûteuse, car elle implique la modification de tous les rapports de génération de code pour appeler le Cristal de service à la place. Le Cristal de service ne présentent pas l'erreur. Le code n'a pas changé en plus de cela, nous ne pouvons donc présumer que la cause de l'erreur a été de l'interaction du moteur Crystal reports et de l'environnement au sein de notre application.
Pour moi, le problème était avec la Temporaire de Rapport Crystal, qui est généré dans le dossier TEMP de Windows. Il y a une limite au nombre de Temporaire de Crystal Reports qui peuvent être générés par le moteur Crystal report, alors que le traitement en boucle. Soit l'espace dans le dossier Temp imparti en raison de la faible mémoire dans le lecteur C ou à la limite de rapports est atteint au bout de ce qui, dans un seul passage de rapport crystal ne peut pas exporter plus loin. Il donnera l'erreur mentionné dans la question.
Pour moi ce problème est récurrent à chaque 500 rapports qui ont été traitées (j'étais générer les rapports de dire, pour une année, et de les exporter vers un système de dossier un par un à partir de mon application)
La solution est simple. Toujours close et dispose temporaire .rpt de Rapport Crystal fichier après l'exportation .
Est-il une chance de l'objet de rapport est l'objet de fuites dans la mémoire du serveur? J'ai couru dans un cas similaire où le rapport de l'objet sont stockées dans un objet de Session, de sorte que le rapport n'a pas besoin d'obtenir rechargée à l'utilisateur de naviguer entre les pages. Toutefois, lorsque l'utilisateur a été fait avec le rapport, l'objet est resté dans la Session, et n'avait pas été nettoyée correctement lors de la Session a été détruit par le serveur. J'ai dû ajouter un peu de code dans l'événement Session_End mondiale.asax pour trouver l'objet de rapport et d'appeler la méthode dispose sur elle.
Le fait que ce qui apparaît par intermittence, mais affecte tous les rapports pour une affaire de 10 minutes me fait penser qu'il pourrait session liés. Dans ma situation, le serveur atteint une limite sur le nombre de rapports qui pourraient être créés sur le serveur (dans la mémoire), parce qu'ils n'étaient pas libérés. Les symptômes sont semblables à la vôtre.
Espérons que cette aide!
Essayez ceci: Si vous avez laissé un espace vide au rapport crystal(en-tête,pied de page ou toutes les sections) de la supprimer. c'est tout. J'ai eu ce problème et j'ai résolu de cette façon.