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

use*_*136 3 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.Application != null)
            {
                m_WordDocument.Application.Visible = true;
                m_WordDocument.Application.Activate();
            }
        }
        catch (COMException comEx)
        {
            ShowError(this, comEx.Message, false);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我的应用程序执行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()"
Run Code Online (Sandbox Code Playgroud)

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

Fré*_*idi 5

COM错误0x800A11F9是一个众所周知的权限问题,当一个弱势用户(如Network Service)尝试激活Office应用程序时会发生这种问题.

在您的情况下,问题不能来自IIS,因为您正在开发WinForms应用程序.相反,它看起来像你的应用程序是由下运行的Windows服务启动Local ServiceNetwork Service用户帐户.

如果确实如此,则需要Log on在服务属性对话框的选项卡中更改服务使用的用户帐户.

编辑:您可能想尝试将激活Word的代码放入COM +组件并配置组件的标识,以便它可以在可以启动Word的用户帐户下运行.