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,它不能被捕獲,因爲沒有辦法可靠地展開調用堆棧。

在這種情況下,您的應用程序將表現得像您說的那樣。

相關問題