在C#中搜索文档中的单词是错误的

时间:2019-02-07 08:25:59

标签: c#

我编写了以下代码:在文档中搜索一个单词,该单词在控制台应用程序中没有问题,但是当我单击按钮时在ASP.NET应用程序中不起作用:

using Microsoft.Office.Interop.Word;

 Application objWordApp = new Application();
                objWordApp.Visible = false;
                object missing = System.Reflection.Missing.Value;
                Document objDoc;
                objDoc = objWordApp.Documents.Open(fileURL, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing);

                object findText = "Tags";

                objDoc.Content.Find.ClearFormatting();
                try
                {
                    if (objDoc.Content.Find.Execute(ref findText,
                    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref missing, ref missing))
                    {
                        Console.WriteLine("Text found: Name document - " + "'" + docTitle + "'");
                    }
                    objDoc.Close(ref missing, ref missing, ref missing);
                    objWordApp.Application.Quit(ref missing, ref missing, ref missing);
                }
                catch (Exception ex)
                {
                    objDoc.Close(ref missing, ref missing, ref missing);
                    objWordApp.Application.Quit(ref missing, ref missing, ref missing);
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                test11.Text = ex.ToString();
            }
  

System.UnauthorizedAccessException:检索COM类工厂   具有CLSID {000209FF-0000-0000-C000-000000000046}的组件失败   由于以下错误:80070005访问被拒绝。 (例外   HRESULT:0x80070005(E_ACCESSDENIED))。

我在论坛上查看了很多信息,按照文章中的内容进行了所有操作,没有任何帮助,错误没有消除。

1。DCOM Error : Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.

2。Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046}

2 个答案:

答案 0 :(得分:1)

您可以尝试这个

第1步:

引用此链接:Interop.Word Documents.Open is null

如果您仍在寻找答案,我刚刚在我的项目中找到了答案。

打开DCOM配置设置:

  1. 开始-> dcomcnfg.exe

  2. 计算机

  3. 本地计算机

  4. 配置DCOM

  5. 搜索Microsoft Word 97-2003文档->属性 标签标识,从启动用户更改为交互式用户

第二步:

转到您的项目进行以下更改。

enter image description here

第3步:

转到 IIS服务器,将应用程序池(如下面的配置)和映射添加到您的网站或应用程序。

enter image description here

答案 1 :(得分:0)

问题是,我只需要使用method SPSecurity.RunWithElevatedPrivileges在ASP.NET应用程序(SharePoint)上调用具有顶级权限的代码。

SPSecurity.RunWithElevatedPrivileges(delegate() {
//code is here
});