doc和docx电子邮件验证在本地但不在服务器上正常工作

时间:2015-04-03 08:21:49

标签: c# asp.net excel email ms-word

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

单词文件验证的代码

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。 感谢

1 个答案:

答案 0 :(得分:0)

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

我建议使用互操作打开doc文件。比它会起作用