Asp.net 在IIS 7中打开MS word文档时出错,

Asp.net 在IIS 7中打开MS word文档时出错,,asp.net,iis,ms-word,.doc,Asp.net,Iis,Ms Word,.doc,我正在使用Asp.Net开发一些页面,其中包含打开和阅读一些MS word文档,它在我的VS 2010中在其自己的本地主机上运行良好,但当我将文件放在wwwroot下并通过Inetmgr运行页面时,我收到以下错误: 此命令不可用,因为未打开任何文档 你认为问题出在哪里?我是否应该在IIS管理器中添加一些引用或编辑一些设置以使用MS word文档?怎样?谢谢:) 这就是我如何打开和阅读一个名为stopwords.doc的文档 static extractor() { try

我正在使用Asp.Net开发一些页面,其中包含打开和阅读一些MS word文档,它在我的VS 2010中在其自己的本地主机上运行良好,但当我将文件放在wwwroot下并通过Inetmgr运行页面时,我收到以下错误:

此命令不可用,因为未打开任何文档

你认为问题出在哪里?我是否应该在IIS管理器中添加一些引用或编辑一些设置以使用MS word文档?怎样?谢谢:)

这就是我如何打开和阅读一个名为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;
        }

    }
这不是有效的文件路径

尝试将文件放在web应用程序文件夹中,例如,在部署ASP.NET应用程序的位置创建一个名为WordDocs的文件夹,然后获得如下文件路径:

string filePath = Server.MapthPath("~/WordDocs/stopwords.doc");

if(File.Exists(filePath))
{
  object file = filePath;
  object nullobj = System.Reflection.Missing.Value;
  ...
}

通常,运行web进程的帐户没有足够的操作系统权限来运行Word等GUI应用程序。在大多数情况下,这可能是一件好事,因为人们确实不应该从web进程运行GUI应用程序。当word弹出一个阻止整个站点的模式对话框,并且没有人可以访问web服务器并单击“确定”时,会发生什么情况。如果你必须阅读word文档,那么图书馆是一个更好的解决方案


总之,在这里使用word毫无意义——您只是从文件中加载了一些停止字。纯文本将同样有效,并且更容易处理

如何打开文档?您可以显示代码吗?我可以从用户处获取文档以进行处理,也可以在服务器上获取一些已知文件。谢谢,但我改为:string filePath=HttpContext.Current.Server.MapPath(“~/stopwords.doc”);我仍然会遇到同样的错误用户上传的word文件呢?我也在试着打开它们看第一段,使用适当的库。谢谢,我试过DocX Liberry,但它只适用于Word 2007,你认为我可以添加允许它使用Word的权限吗?我正在开发一些原型,没有钱为像Aspose这样的库购买许可证。
string filePath = Server.MapthPath("~/WordDocs/stopwords.doc");

if(File.Exists(filePath))
{
  object file = filePath;
  object nullobj = System.Reflection.Missing.Value;
  ...
}