我在一个简单的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.
我尝试同时授予IIS_IUSRS
和NETWORK SERVICE
完全访问权限,并在DCOM配置中将身份设置为交互式,但它没有修复任何内容。
答案 0 :(得分:4)
令人讨厌的权限阻止你做你期望的事情(我过去也遇到过)。有时我也必须将DCOM / COM +权限更改为对象。在项目的DCOM配置选项卡屏幕上,在安全性下,确保已自定义“启动和激活”和“访问”以明确包含您要允许的用户帐户。
现在,还有一件事 - 只是为了排除所有其他人。我甚至消失了(仅用于测试/确认)是在“身份”选项卡上,您可以选择“交互式用户”,“启动用户”或“此用户”。我会在您的实际帐户中输入您知道的权限(确保您的帐户也处于启动和激活状态...以及之前选项卡上的访问权限)。并输入/确认您的密码。
如果仍然失败,那么我会尝试添加ADMIN帐户的权限并尝试...只是为了是,它的权限基于用户。确认之后,您可以将其缩小,甚至创建一些简化的受限用户,其主要目的是运行此实用程序,并且此新用户具有足够的权限来执行此操作。
一旦完成,你应该好好去。
现在,那就是说,我已经遇到了另一个问题,而且已经有一段时间了,所以它可能不再是一个问题了。在某些“Windows”更新期间,该功能会定期停止工作。但是,如果我所做的只是重新进入用户维护,请更改帐户的密码(即使只保留相同的原始密码)并保存,然后返回DCOM并输入/重新确认将其保存在那里,一切都恢复了功能。
答案 1 :(得分:1)
您应该与NETWORK SERVICE
用户共享保存从模板创建的文档的文件夹。
答案 2 :(得分:0)
将dcomcnfg identity
更改为交互式,而不是启动用户。
参考:Error : 80070005 ,此论坛中有关于
Retrieving the COM class factory for component with CLSID {7979FAA5-3A2A-4E50-A2C9-286C6F34C1D3} failed due to the following error: 80080005