我正在开发Asp.Net的一些页面,其中包含打开和阅读一些MS word文档,它在我自己的本地主机上的VS 2010中运行良好但是当我把文件放在wwwroot下并运行Inetmgr的页面时我得到了这个错误:
你觉得问题出在哪里?我应该在我的IIS管理器中添加一些引用或编辑一些设置来使用MS word docs吗?怎么样?谢谢:))此命令不可用,因为没有文档打开。
这就是我试图打开并阅读名为stopwords.doc
的文档的方式static extractor()
{
try
{
ApplicationClass wordApp = new ApplicationClass();
string[] words;
char[] delimiterChars = { ' ', ',', '.', '\r', '\t', '\n' };
string filePath = "http://localhost:8777/stopwords.doc";
object file = filePath;
object nullobj = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref file,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj,
ref nullobj);
Microsoft.Office.Interop.Word.Document doc1 = wordApp.ActiveDocument;
string m_Content = doc1.Content.Text;
doc.Close(ref nullobj, ref nullobj, ref nullobj);
if (m_Content != null)
{
words = m_Content.Split(delimiterChars);
foreach (string s in words)
{
if (!stopwords.ContainsKey(s))
stopwords.Add(s, s);
}
}
}
catch (Exception)
{
throw;
}
}
答案 0 :(得分:1)
通常,运行Web进程的帐户没有足够的操作系统权限来运行像Word这样的GUI应用程序。在大多数情况下,这可能是一件好事,因为实际上不应该从Web进程运行GUI应用程序。当word弹出一个阻止整个站点的模式对话框并且没有人可以访问Web服务器并单击OK时会发生什么。如果你必须阅读word文档,库是一个更好的解决方案。
所有这一切,在这里使用word是没有意义的 - 你只是从文件中加载一些停用词。纯文本同样有效且更容易处理。
答案 1 :(得分:0)
string filePath = "http://localhost:8777/stopwords.doc";
这不是有效的文件路径。
尝试将文件放在Web应用程序文件夹中,例如在部署ASP.NET应用程序的位置创建一个名为WordDocs的文件夹,然后获取如下文件路径:
string filePath = Server.MapthPath("~/WordDocs/stopwords.doc");
if(File.Exists(filePath))
{
object file = filePath;
object nullobj = System.Reflection.Missing.Value;
...
}