应用程序托管报表查看器在导出后在退出时崩溃

时间:2010-04-21 12:27:14

标签: c# .net vb.net crystal-reports

我们有一个承载Crystal Reports Viewer控件(版本XI)的.NET Winforms应用程序。它在大多数情况下运行良好,但是当执行从查看器导出数据时,应用程序将在退出时以及非托管代码中崩溃。错误消息不是很有用,只是说访问了不正确的内存位置。没有提供其他信息,例如特定的DLL等。

这只发生 后,使用查看器将报表导出为CSV,XML等。我的猜测是,在导出过程中的某个时刻,Crystal会创建一个资源,尝试关闭时执行操作到一个不再存在的父窗口(可能)。

我已经看到了一些内存泄漏并关闭了Crystal的问题,但这个是新的。有没有人看到它并提出解决方法或有解决方法的想法?

到目前为止,我们已经尝试明确处理所有与晶体相关的对象,设置为null,甚至在关闭时设置Thread.Sleep循环以“给予Crystal时间清理。”

更新

  • 只有在关闭时才会发生崩溃(所以不会立即发生)
  • 所有导出格式均有效
  • 正确创建所有导出文件
  • CR与托管.NET应用程序安装在同一台计算机上
  • 不确定从IDE导出......是否可能?

1 个答案:

答案 0 :(得分:-1)

检查代码以确保在应用程序的生命周期内只打开一次Crystal Application对象。这将防止过多的内存使用,可能导致崩溃的使用。显然,您可以随意打开和关闭报告。