我正在用一个简单的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_IUSRSNETWORK SERVICE完全访问权限,并且还在DCOM配置中将身份设置为交互式,但是它没有解决任何问题。

最佳答案

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

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

如果仍然失败,那么我将尝试添加ADMIN帐户的权限,然后尝试...只是为了是,其权限基于用户。确认后,您可以将其缩减,甚至可以创建一些简化的受限用户,其主要目的是运行该实用程序,并且该新用户具有足够的权限来执行此操作。

一旦完成,您应该就可以开始了。

话虽这么说,但我遇到了另一件事,这已经有一段时间了,所以可能不再是一个问题。定期地,在某些“Windows”更新期间,该功能将停止工作。但是,如果我所做的只是回到用户维护上,请更改帐户密码(即使只是使用相同的原始密码)并保存,然后再返回DCOM并再次输入/确认保存在那里,一切又恢复了功能。

10-05 18:20