在我的程序中,当我使用以下命令打开PDF文件时,我有一个奇怪的问题:
Process.Start("test.pdf");
第一次,文件打开很好,但第二次在任何pdf文件上使用此命令,在代码中的任何位置,vshost.exe崩溃。
我的下一步是禁用vshost,禁用vshost,应用程序自动崩溃。
当我说'崩溃'时,我的意思是说它已停止响应。
如果我创建一个新项目,它的工作正常,那么我的项目一定有问题吗?
我在代码中的其他位置使用iTextSharp
库来创建pdfs,这可能是一个原因吗?
我意识到这个问题非常普遍,但我不知道是什么导致它,所以我不知道要提供什么信息。
更多信息:
当我在程序崩溃后查看调试器的输出时,它显示“程序'[4320] SmartShelf.exe:Managed(v4.0.30319)'已退出,代码为-1073741819(0xc0000005)'访问冲突'。 “
编辑:有没有人知道使用c#查看pdf的其他方式?
答案 0 :(得分:0)
我会在调用start(“asdf.pdf”)之前使用context或dispose命令来删除任何打开的文件连接,看看是否会处理它。
还要确保您的进程在win7中以管理员身份运行。 您可以尝试的另一件事是使用process.start(cmd,“aspdf.pdf”),这样就可以启动命令窗口并调用pdf启动器。
答案 1 :(得分:0)
虽然不完美,但我的解决方案是在webBrowser控件中显示pdf,方法是使用
将URL设置为PDF的路径 webBrowser1.Navigate("asdf.pdf");
这在adobe reader中显示,但在网络浏览器中显示。
此解决方案非常适合我的需求(如果不是更好)并且不会导致应用程序崩溃。谢谢大家的建议。