2009-06-22 24 views
2

我的一位同事編寫了一個.NET Windows服務,它將.doc轉換爲.docx文件。爲了實現這一目標,他使用了Office 2007兼容包隨附的wordconv.exe。爲什麼wordconv.exe在.NET窗口服務中調用時會隨機返回-14

大多數時間一切正常,但在某些情況下,我們還無法再現,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; 

回答

2

好吧,我們只是發現了這個問題。我們的客戶保存了文檔擴展名爲doc的文檔x。後來他們試圖將該文檔轉換成文檔x。使用辦公兼容包的GUI一切正常。即使Word打開了「僞造」doc文件,但沒有警告消息。

0

不知wordconv是否遭受同樣的命運,Office的其他部分 - 即not supported in a service application。因此,奇怪的事情可能會發生......

+0

感謝您的回答!我認爲/希望這不是問題,因爲我們沒有做任何com自動化,只是一些「命令行風格」調用。不過,我會研究這個! – 2009-06-22 13:15:20

+1

但是wordconv在內部做什麼......? – 2009-06-22 13:21:52

+0

因爲它沒有安裝MS Office的副本,我希望,它不會做任何辦公室com自動化魔術;-) – 2009-06-22 13:39:44

1

你可以將問題與特定的輸入文件?

如果你不能確保始終只有wordconv.exe的單個實例在運行?

這可能是幾個並行的進程可能不被支持(我只是瘋狂猜測;我們有一個服務基本上執行相同的調用,但我們還沒有面臨這樣的問題)。

相關問題