间歇水晶报告错误“无法提交请求用于后台处理”。 [英] Intermittent Crystal Reports error "The request could not be submitted for background processing."

查看:471
本文介绍了间歇水晶报告错误“无法提交请求用于后台处理”。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用.NET Framework 3.5 SP1的Windows Server 2008上运行Crystal Reports。

We are running Crystal Reports on a Windows Server 2008 with .NET framework 3.5 SP1.

我看到很多原因的一般错误请求无法提交后台处理。在其他论坛上,但是它们往往是持久和可重复的,仅影响一个报告,由于特定格式问题与特定报告。

我们看到这个错误与下面的堆栈跟踪,间歇。

I have seen many causes of the general error "The request could not be submitted for background processing." on other forums, however they tend to be persistent and repeatable affecting just a single report due to a specific formatting issue with a specific report.
We are seeing this error with the below stack trace, intermittently.


  • 它会影响我们有多个不同的报告。

  • 比其他报表更频繁地影响一个特定报表。

  • 一旦报表受到影响,同一错误通常会在大约相同的时间出现在多个报表中,例如。

  • 使用相同参数运行的相同报表可能会在再次运行时(稍后运行)运行,或者应用程序可能需要重新启动才能成功重新运行报表。

  • It affects multiple different reports we have.
  • It affects one particular report more frequently than other reports.
  • Once a report is affected the same error will often appear in multiple reports at approximately the same time eg. for the next 10 minutes.
  • The same report run with the same parameters may work when run again (soon after) or the application may need restarting before the report can be successfully re run.

这些报告以前都没有问题。没有改变服务器或代码似乎明显,这将沉淀这个错误。所有代码背后的是VB.NET

These reports all worked previously without issue. No change in server or code seems apparent which would have precipitated this error. All code behind for this is VB.NET

我们已经难以在测试环境中重现它,升级到最新版本的Crystal根本没有帮助。
您可能会为解决此问题可能提供的任何帮助或建议。

We have had difficulty reproducing it in test environments and upgrading to the latest version of Crystal has not helped at all. Any help or suggestions that you might be able to make to resolve this issue would be appreciated.

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


推荐答案

隔离报告生成代码。

我们的最终解决方案是获取生成报告的代码,并将其移动到自己的隔离服务中。然后,我们的原始服务调用具有相关参数和Crystal RPT文件的新Crystal服务。这显然是一个昂贵的解决方案,因为它涉及修改所有报告生成代码以调用Crystal服务。 Crystal服务不显示错误。除此之外代码没有改变,所以我们只能假定错误的原因是Crystal报表引擎和我们的应用程序中的环境的一些交互。

Our final resolution was to take the code that was generating the report and move it into its own isolated service. Our original service then calls our new Crystal service with the relevant parameters and Crystal RPT file. This is obviously a costly solution as it involves modifying all report generation code to call the Crystal service instead. The Crystal service does not exhibit the error. The code had not changed besides that, so we can only presume the cause of the error was some interaction of the Crystal reports engine and the environment within our application.

这篇关于间歇水晶报告错误“无法提交请求用于后台处理”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆