Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# COM异常0x800A11F9-无法激活应用程序_C#_Com_Interop_Ms Word - Fatal编程技术网

C# COM异常0x800A11F9-无法激活应用程序

C# COM异常0x800A11F9-无法激活应用程序,c#,com,interop,ms-word,C#,Com,Interop,Ms Word,我有一个C#2.0(WinForms)项目,在该项目中,我尝试激活word 2003(word安装在系统上)。通过使用以下代码: private void ActivateWord() { this.Activate(); if (m_WordDocument != null) { try { m_WordDocument.Activate(); if (m_WordDocument.Ap

我有一个C#2.0(WinForms)项目,在该项目中,我尝试激活word 2003(word安装在系统上)。通过使用以下代码:

private void ActivateWord()
{
    this.Activate();

    if (m_WordDocument != null)
    {
        try
        {
            m_WordDocument.Activate();

            if (m_WordDocument.Application != null)
            {
                m_WordDocument.Application.Visible = true;
                m_WordDocument.Application.Activate();
            }
        }
        catch (COMException comEx)
        {
            ShowError(this, comEx.Message, false);
        }
    }
}
当我的应用程序执行m_WordDocument.application.Activate()时,我收到一个COM异常0x800A11F9

Stacktrace:
    "System.Runtime.InteropServices.COMException (0x800A11F9): Cannot activate application  
        at Word.ApplicationClass.Activate()  
        at Roxit.SquitXO.GUI.DocumentCreatie.frmSelectVeld.ActivateWord()"

这个问题的原因可能是什么?

我想我在服务器上执行word自动化时也看到了类似的错误(由于flakiness,我们不再执行此操作),但是当时它是由ASP.net帐户的权限问题引起的,我知道您正在winforms中运行,但这可能与权限有关吗?

COM错误0x800A11F9是一个权限问题,当弱势用户(如
网络服务
)尝试激活Office应用程序时会出现此问题

在您的情况下,问题不可能来自IIS,因为您正在开发WinForms应用程序。相反,您的应用程序似乎是由运行在
本地服务
网络服务
用户帐户下的Windows服务启动的

如果确实是这样,您需要在服务属性对话框的
登录
选项卡中更改服务使用的用户帐户


编辑:您可能希望尝试将激活Word的代码放入,并配置组件的标识,使其在可以启动Word的用户帐户下运行。

如果是权限问题,并且您无法让Sitecore以具有足够权限的用户身份运行,或许您可以编写其他服务(“文字服务”)让你的Sitecore应用程序向其发送请求。然后WordService可以作为一个稍微有特权的用户运行,使用Word完成你的工作,例如,将填写好的Word文件写入Sitecore可以访问的已知位置,或任何你想让它访问的位置。

错误代码谷歌搜索,只需点击几下。如果这对你没有帮助,你需要Microsoft Sup端口。在花了一段时间对DCOM配置进行改进后,我看到了完全相同的错误。我尝试了谷歌搜索,但没有真正的运气(大多数网站只是其他网站上这个问题的副本)。在我的情况下,这是从web应用运行的。我无法更改用户帐户,因为我使用的是Sitecore,它要求特定用户登录。我尝试通过DCOM配置向网络服务用户授予访问权限,没有权限。然后,我尝试更新“Everyone”的全局COM权限,以便“启动和访问”嗯,我以前在web服务器上使用MS word生成文档时也遇到过类似的问题。如果我记得您需要授予服务用户权限,并将运行应用程序的用户的身份更改为具有适当权限的用户(DCom属性)。这对我很管用。此外,您还可以在DCom for Microsoft Word的安全标签中设置启动和激活权限以及其他权限