System.Runtime.InteropServices.COMException(0x80080005):使用CLSID检索组件的COM类工厂

8 c# asp.net ms-word

我在一个简单的asp.net c#应用程序中用SQL Server中的数据替换MS Word MergeFields,它在本地工作正常,但是当我经常发布它时,我得到以下内容:

System.Runtime.InteropServices.COMException (0x80080005): Retrieving the COM class factory for component with CLSID {00020906-0000-0000-C000-000000000046} failed due to the following error: 80080005.
Run Code Online (Sandbox Code Playgroud)

我试图让两者IIS_IUSRSNETWORK SERVICE充分接触,并设置身份互动的DCOM配置,但它并没有解决任何事情.

DRa*_*app 6

对于讨厌的权限阻止你做你期望的事情,(我过去也遇到过)。有时我也不得不将我的 DCOM/COM+ 权限更改为一个对象。在项目的 DCOM 配置选项卡屏幕上,在安全性下,确保“启动和激活”和“访问”都已自定义为明确包含您打算允许的用户帐户。

现在,还有一件事——只是为了排除所有其他人。我什至(仅用于测试/确认)是在“身份”选项卡上,您可以选择“交互式用户”、“启动用户”或“此用户”。我会输入您知道拥有权限的实际帐户(确保您的帐户也在启动和激活中......以及上一个选项卡上的访问权限)。以及输入/确认您的密码。

如果仍然失败,那么我会尝试添加 ADMIN 帐户以获得权限并尝试...只是出于是的目的,它的权限基于用户。一旦确认,您可以缩减它,甚至创建一些简化的受限用户,其主要目的是运行此实用程序,并且这个新用户有足够的权限来这样做。

一旦完成,你应该很高兴。

现在,也就是说,我遇到了另一个奇怪的事情并且已经有一段时间了,所以它可能不再是一个问题。在某些“Windows”更新期间,该功能会定期停止工作。但是,如果我所做的只是返回用户维护,请更改帐户的密码(即使只是保留相同的原始密码)并保存它,然后返回 DCOM 并输入/重新确认将其保存在那里,一切都恢复了功能。