我正在创建一个电子邮件应用程序,我在其中验证附加单词和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。 感谢
答案 0 :(得分:0)
这是因为您正在会话中启动窗口化应用程序而不是窗口化。此外,IIS_USRS可能不允许运行MS Word。
我建议使用互操作打开doc文件。比它会起作用