Word无法阅读此文档。它可能已腐败

时间:2016-09-01 14:00:06

标签: c# asp.net visual-studio-2015 ms-word

我有一个asp.net应用程序,它使用在电子邮件中生成文档附件的单词模板。最初我在我的本地驱动器上有模板进行测试,但现在我准备将应用程序放在我们的服务器上进行测试,我遇到了问题。如果我将模板放在应用程序中的文件夹中(仍然从Visual Studio运行)或网络驱动器上,我收到错误:

Word was unable to read this document.  It may be corrupt.\nTry one or more of the following:\n* Open and Repair the file.\n* Open the file with the Text Recovery converter."}
Data: {System.Collections.ListDictionaryInternal}
ErrorCode: -2146823137
HResult: -2146823137
HelpLink: "C:\\Program Files (x86)\\Microsoft Office\\Office12\\1033\\WDMAIN11.CHM#24631"
InnerException: null
Message: "Word was unable to read this document.  It may be corrupt.\nTry one or more of the following:\n* Open and Repair the file.\n* Open the file with the Text Recovery converter."

我的桌面上有Word 2007。我可以通过在网络驱动器上双击它来打开文档。我尝试将.dot的扩展名更改为.dotx&甚至重命名文件 - 没有做任何事情。我在线搜索的结果不属于我或没有帮助(权限问题,但我在应用程序本身收到模板错误)。

我的代码:

object templateDoc = "\\network path\\ServiceRequestForm.dotx";
            object outputDoc = @"C:\temp\ServiceRquestFormOutput.docx";
            Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
            object missing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Add(ref templateDoc, ref missing, ref missing, ref missing);
            doc.Activate();
            Microsoft.Office.Interop.Word.Find fnd = wordApp.Selection.Find;

            SearchReplace(fnd, wordApp, "%date%", date);
            SearchReplace(fnd, wordApp, "%routingto%", routingTo);

错误来自行:

Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Add(ref templateDoc, ref missing, ref missing, ref missing);

至于我使用MS.Office.Interop.Word ...这样做,不要问我为什么我不这样做,那样,你的方式,无论如何......如果你不这样做有任何可以帮助继续前进的东西。我感谢任何人都可以添加的建议。感谢。

1 个答案:

答案 0 :(得分:0)

因为这是令人尴尬的承认,我没有将我的文档检入源代码控制。一旦我做了错误消失了,我没有更多的问题(截至目前!)。是啊...啊!