title: Com Exception: Word was unable to read this document. It may be corrupt
body: <p>I have a web app that takes some client info and produces a letter for each client.  Everything works good in my test environment, but on the production server I get an error that says the file is corrupt.  I can open the .dotx file in word just fine on the server but not via code.  Please help.  Here is my code:</p>
  
  <pre><code>Object oMissing = System.Reflection.Missing.Value;
  
              Object oTrue = true;
              Object oFalse = false;
  
              Word.Application oWord = new Word.Application();
              Word.Document oWordDoc = new Word.Document();
  
  
              oWord.Visible = false;
  
              Object oTemplatePath = Request.PhysicalApplicationPath + "letters\\" + letter.letter_data; //samplehollisletter.dotx";
  
              oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
  
              foreach (Word.Field myMergeField in oWordDoc.Fields)
              {
  
                  iTotalFields++;
                  Word.Range rngFieldCode = myMergeField.Code;
                  String fieldText = rngFieldCode.Text;
  
                  if (fieldText.StartsWith(" MERGEFIELD"))
                  {
  
                      Int32 endMerge = fieldText.IndexOf("\\");
                      Int32 fieldNameLength = fieldText.Length - endMerge;
                      String fieldName = fieldText.Substring(11, endMerge - 11);
  
                      fieldName = fieldName.Trim();
  
                      if (fieldName == "letter_title")
                      {
                          myMergeField.Select();
                          oWord.Selection.TypeText(acct.letter_title);
                      }
                      if (fieldName == "account_id")
                      {
                          myMergeField.Select();
                          oWord.Selection.TypeText(acct.account_id);
                      }
  
                      if (fieldName == "address")
                      {
                          myMergeField.Select();
                          oWord.Selection.TypeText(acct.PEOPLE.home_address + "\r\n" + acct.PEOPLE.home_city + ", " + acct.PEOPLE.home_state + " " + acct.PEOPLE.home_zip);
                      }
  
                      if (fieldName == "greeting_title")
                      {
                          myMergeField.Select();
                          oWord.Selection.TypeText(acct.greeting_title);
                      }
  
                      if (fieldName == "service_name")
                      {
                          myMergeField.Select();
                          oWord.Selection.TypeText((acct.SERVICEs.FirstOrDefault()).service_name);
                      }
  
                      if (fieldName == "service_date")
                      {
                          myMergeField.Select();
                          oWord.Selection.TypeText((acct.SERVICEs.FirstOrDefault()).service_date.ToString());
                      }
  
  
                  }
              }
              oWordDoc.PrintOut();
              oWordDoc.Close(Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges);
              Thread.Sleep(2000);
              oWord.Quit();
  </code></pre>
  
  <p>The Error is:</p>
  
  <pre><code>Server Error in '/Tracker2' Application. 
  </code></pre>
  
  <p>Word was unable to read this document.  It may be corrupt.
  Try one or more of the following:
  * Open and Repair the file.
  * Open the file with the Text Recovery converter. 
  Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. </p>
  
  <p>Exception Details: System.Runtime.InteropServices.COMException: Word was unable to read this document.  It may be corrupt.
  Try one or more of the following:
  * Open and Repair the file.
  * Open the file with the Text Recovery converter.</p>
  
  <p>Source Error: </p>
  
  <p>An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. </p>
  
  <p>Stack Trace: </p>
  
  <p>[COMException (0x800a141f): Word was unable to read this document.  It may be corrupt.
  Try one or more of the following:
  * Open and Repair the file.
  * Open the file with the Text Recovery converter.]
     Microsoft.Office.Interop.Word.Documents.Add(Object&amp; Template, Object&amp; NewTemplate, Object&amp; DocumentType, Object&amp; Visible) +0
     Tracker.RunLetter2.Button1_Click(Object sender, EventArgs e) in C:\Users\Ethan\Documents\Visual Studio 2010\Projects\EstateTracker\Tracker\RunLetter2.aspx.cs:52
     System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +154
     System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3691</p>