为什么从.NET windows服务调用wordconv.exe时会随机返回-14

为什么从.NET windows服务调用wordconv.exe时会随机返回-14,.net,ms-word,.net,Ms Word,我的一位同事编写了一个.NET windows服务,将.doc文件转换为.docx文件。为了实现这一目标,他使用Office2007兼容包附带的wordconv.exe 大多数情况下,一切正常,但在某些我们还无法复制的情况下,wordconv.exe不会转换,而是返回exitcode-14 不幸的是,这个错误只发生在我们的客户生产环境中。我们无法重现开发或集成系统中的错误 我们正在使用以下代码: Process converter = new Process(); converter.Start

我的一位同事编写了一个.NET windows服务,将.doc文件转换为.docx文件。为了实现这一目标,他使用Office2007兼容包附带的wordconv.exe

大多数情况下,一切正常,但在某些我们还无法复制的情况下,wordconv.exe不会转换,而是返回exitcode-14

不幸的是,这个错误只发生在我们的客户生产环境中。我们无法重现开发或集成系统中的错误

我们正在使用以下代码:

Process converter = new Process();
converter.StartInfo.FileName = <Path to wordconv.exe>;
converter.StartInfo.Arguments = string.Format("-oice -nme \"{0}\" \"{1}\"", fileIn, fileOut);
converter.StartInfo.CreateNoWindow = true;
converter.StartInfo.WindowStyle = ProcessWindowStyle.hidden
converter.StartInfo.UseShellExecute = false;
converter.StartInfo.RedirectStandardError = true;
converter.StartInfo.RedirectStandardOutput = true;
converter.Start();
converter.WaitForExit(intervall);
int exitCode = converter.ExitCode;
流程转换器=新流程();
converter.StartInfo.FileName=;
converter.StartInfo.Arguments=string.Format(“-oice-nme\”{0}\“{1}\”,fileIn,fileOut);
converter.StartInfo.CreateNoWindow=true;
converter.StartInfo.WindowStyle=ProcessWindowStyle.hidden
converter.StartInfo.UseShellExecute=false;
converter.StartInfo.RedirectStandardError=true;
converter.StartInfo.RedirectStandardOutput=true;
converter.Start();
转换器。WaitForExit(间隔);
int-exitCode=converter.exitCode;

我想知道wordconv是否正遭受着与办公室其他人同样的命运——即。因此,可能会发生奇怪的事情…

您能将问题与特定的输入文档联系起来吗

如果不能,是否可以确保始终只有一个wordconv.exe实例在运行


可能是几个并行进程可能不受支持(我只是胡乱猜测;我们有一个服务基本上执行相同的调用,但我们还没有遇到这样的问题)。

好的,我们刚刚发现了问题。我们的客户使用文档扩展名保存了文档x文件。后来,他们试图将此文档x转换为文档x。使用office Compatibility pack的GUI,一切正常。即使Word打开了“伪造”的文档文件,也没有发出警告信息。

谢谢您的回答!我认为/希望这不是问题所在,因为我们没有进行任何com自动化,只是进行一些“命令行风格”的调用。不过,我会研究的!但是wordconv在内部做什么…?由于它在没有安装ms office的情况下工作,我希望它不会产生任何office com自动化的魔力;-)好吧,很公平。那么,听起来这不是问题所在。很抱歉给您添麻烦,但我认为至少值得调查一下。它不需要安装Office版本,但Compatibility Pack本身安装了很多,例如,Office的核心组件mso.dll。谢谢您的建议!问题发生在不同的文档中。所有这些都可以很容易地在以后转换。我认为我们正在并行运行多个转换器进程。我来看看这是不是我们问题的原因!这帮助我意识到我的文档只是一个扩展名为.doc的.txt文件。转换失败,没有进一步的信息。