System.Diagnostics.Process.Start第二次始终失败

时间:2018-08-30 07:58:46

标签: c#

我有以下代码从我的应用程序中打开文档:

System.Diagnostics.Process.Start(fileName);

这已经可以工作好多年了,并且在其他人的计算机上也可以工作。

但是,我最近有一台新电脑。在我的计算机上,它只能运行一次:单击按钮,然后打开文档。当我第二次尝试做完全相同的事情时,出现此错误:

Message: System.ComponentModel.Win32Exception (0x80004005): The specified procedure could not be found
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName)
   at Citadel.Products.Entity.ProductFactSheetDetail.DownLoad(String path, Boolean includeDateInFileName, Boolean addGuidToFileName, Boolean fileNameKeepSpaces, Boolean viewDocument)
   at Citadel.Products.Entity.ProductFactSheetDetail.DownLoad(Boolean includeDateInFileName)
   at Citadel.Products.Interface.Controls.FactSheetVersionSelectorControl.btnView_Click(Object sender, EventArgs e) in C:\Dev\Src\Tyrus\CodeBase\Development\Citadel.Products\Citadel.Products.Interface\Controls\FactSheetVersionSelectorControl.cs:line 81 - The specified procedure could not be found
Stack Trace:    at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName)
   at Citadel.Products.Entity.ProductFactSheetDetail.DownLoad(String path, Boolean includeDateInFileName, Boolean addGuidToFileName, Boolean fileNameKeepSpaces, Boolean viewDocument)
   at Citadel.Products.Entity.ProductFactSheetDetail.DownLoad(Boolean includeDateInFileName)
   at Citadel.Products.Interface.Controls.FactSheetVersionSelectorControl.btnView_Click(Object sender, EventArgs e) in C:\Dev\Src\Tyrus\CodeBase\Development\Citadel.Products\Citadel.Products.Interface\Controls\FactSheetVersionSelectorControl.cs:line 81
Application: Citadel.Tyrus
Version: 1.0.0.0
OSVersion: Microsoft Windows NT 6.2.9200.0
Description: 

摆脱此错误的唯一方法是重新启动我的应用程序。

很明显,这不是编码问题,我的计算机上不正确,但是我不知道从哪里开始寻找。任何帮助将不胜感激。

编辑:错误与打开的文件无关。每当我们从数据库下载文件时,我们总是向文件名添加随机Guid以确保其唯一性。

编辑:问题似乎只发生在MS Office文档中。当我打开PDF文档或bmp时,不会发生此错误。

2 个答案:

答案 0 :(得分:0)

Win32Exception 打开关联文件时出错。

我认为您的文件(如Excel)无法两次打开。

在打开文件之前检查文件是否已经打开

答案 1 :(得分:0)

我认为我终于通过重新安装点Net Framework解决了该问题。 (但是,警告:这样做不是为胆小者做的。(我胆怯)。如果您认为卸载和重新安装很简单,请再考虑一下)