1

我写了一个非常简单的C#控制台应用程序,它将打开一个Crystal Report,刷新它并将其保存为PDF到指定的位置。控制台应用程序 - 无法捕获未处理的异常

在VS2005中运行时,一切运行正常; PDF文件按预期生成。当我将.exe复制到我的根C:驱动器并从命令行运行时,我得到一个对话框,指出“CrystalGenerator已停止工作” - 但仍然生成pdf文件! 查找此对话框的可能原因表明发生了未处理的异常,但Main方法的全部内容都包含在try/catch中,因此不能成为我的问题。

查看事件日志,我看到一些条目声明“插入索引(%1)的替换字符串找不到”,但无法找到这意味着什么的明智解释。

好处是,如果我将文件复制到运行Server 2003(它打算运行的位置)的文件夹中,该命令运行时没有错误 - 但我想知道为什么应用程序在Vista上出现故障以及如何解决它。

在此先感谢。

+0

@Kent:感谢标签编辑等,但它是圣诞节队友 - 拔了一段时间;-) – DilbertDave 2009-08-21 10:54:49

回答

1

如果您从提升的命令提示符(WinKey,然后按下cmd,然后按Ctrl + Shift + Return)运行应用程序,它工作吗?

这可能是您正在调用的某个进程需要提升。

+0

@divo:谢谢你的建议,但没有运气我害怕。 – DilbertDave 2008-11-28 12:53:51

0

很多链接追逐后,它看起来像这样的行为是“按设计”!

StackOverflows自己的Jeff Atwood遇到问题(see here),并在Microsoft Connect(see here)上提出了此问题。

看起来我会寻找另一种方法 - 虽然代码没有服务器上运行2003

感谢DIVO您的建议这是非常有益的。

1

如果出于某种原因,您正在导致一个stackoverflow,它不能被捕获,因为没有办法可靠地展开调用堆栈。

在这种情况下,您的应用程序将表现得像您说的那样。

相关问题