C# doc和docx电子邮件验证在本地但在服务器上运行正常

C# doc和docx电子邮件验证在本地但在服务器上运行正常,c#,asp.net,excel,email,ms-word,C#,Asp.net,Excel,Email,Ms Word,我正在创建一个电子邮件应用程序,在其中验证附加的word和excel文档是否有效。它在本地系统上工作正常,但在服务器上部署DDL时,它不适用于word文档(doc和docx)。为了验证word和excel文档,我编写了以下代码- 注意:我在服务器上安装了MS office,用于读取word文档。用于使用microsoft interop Reference及其部署在服务器上的ddl来读取doc和docx i。但它不起作用 1-word文件验证代码 private void button1_Cli

我正在创建一个电子邮件应用程序,在其中验证附加的word和excel文档是否有效。它在本地系统上工作正常,但在服务器上部署DDL时,它不适用于word文档(doc和docx)。为了验证word和excel文档,我编写了以下代码- 注意:我在服务器上安装了MS office,用于读取word文档。用于使用microsoft interop Reference及其部署在服务器上的ddl来读取doc和docx i。但它不起作用

1-word文件验证代码

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Word.Application application = new Word.Application();
                Word.Document document = application.Documents.Open(@"E:\Invalid.docx", Type.Missing, true);
                MessageBox.Show("Valid File");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
2-为了验证excel(xls和xlsx)文档,我编写了以下代码。我使用introp excel进行验证。它在本地和服务器上运行良好

 private void button3_Click(object sender, EventArgs e)
        {
            String strExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=E:\\Test.xls;"
+ "Extended Properties='Excel 8.0;HDR=Yes'";

            try
            {
                OleDbConnection connExcel = new OleDbConnection(strExcelConn);
                OleDbCommand cmdExcel = new OleDbCommand();
                cmdExcel.Connection = connExcel;
                connExcel.Open();
                DataTable dtExcelSchema;
                dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                connExcel.Close();
            }
            catch (Exception ex)
            {
                textBox1.Text = ex.ToString();
            }
        }
请帮助我为什么它不适用于doc和docx。
谢谢

这是因为您正在未打开窗口的会话中启动窗口应用程序。此外,IIS_USRS可能不允许运行MS Word

我建议使用interop打开文档文件。比它更有效