C# COM异常0x800A11F9-无法激活应用程序
我有一个C#2.0(WinForms)项目,在该项目中,我尝试激活word 2003(word安装在系统上)。通过使用以下代码: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
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的安全标签中设置启动和激活权限以及其他权限