Crystal报告称视觉工作室崩溃了

时间:2009-09-24 14:29:30

标签: visual-studio crystal-reports

我有一个C#2.0应用程序,可以启动Crystal Reports查看器并显示一些报告。如果我在Visual Studio的调试或发布模式OUTSIDE中运行它,它运行正常。如果我通过Visual Studio 2005进行调试,会弹出报告,但是一两分钟后VS在ContextSwitchDeadlock上出现问题,同时告诉我没有为任何调用堆栈帧加载任何符号,所以我无法调试它

这可能与报告在另一个线程上启动的事实有关。造成这种情况的原因有点令人费解,但我会尝试解释,以防它重要:

我们有一个在后台线程上运行的长时间运行的进程。完成此过程后,将启动报告。如果它(后台线程)只是在报表查看器表单上调用Show(非模态),它将立即终止并终止所有这些报表。因此,它会为每个报告启动一个子线程,并使用ShowDialog(模态)调用它。这样表单看起来都是非模态的,但是当用户关闭最后一个时,后台进程线程现在没有子线程,它可以终止。

这是否有意义,是否有人知道我为什么要在VS中获取ContextSwitchDeadlock MDA,但是当代码独立运行时不会抛出异常?

4 个答案:

答案 0 :(得分:1)

尝试重命名c:\ temp \ directory - 如果c:\ temp \ Crystal Reports Crashes中有XML文件且您无法打开它们,则会出现一些问题。

答案 1 :(得分:0)

我认为你回答了自己的问题......它与你如何在一个单独的线程中运行它有关。

答案 2 :(得分:0)

删除或移动c:/ temp文件夹中的任何.xml文件(如果有)。它们导致数据库专家崩溃VS

答案 3 :(得分:0)

遇到同样的问题。众所周知,由于某些xml文件位于c:\ temp目录中,导致VS也会导致VS崩溃。第一个选项是,清空c:\ temp目录(为我工作)。其次,您可以尝试将临时目录重命名为“MyTemp”或类似的东西。最后但并非最不重要的是,您可以尝试将项目设置为使用4.0 Framework而不是客户端版本。

P.S:@John Cruz Nope他没有,我不在我的项目中使用单独的线程并获得相同的ContextSwitchDeadlock-Error。