检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005
[C#]用C#动态生成Word文档之服务器配置Server 2003 收藏
用C#动态生成Word文档功能实现了,在本地的机器运行时是好的,但安装到远程服务器上就报错了,让我头疼了好久,看了很多的信息后,现在才算是搞定了。 为了不忘记特意再此做下记录来!
程序安装到远程服务器上,首先报的错误代码就是80070005(检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005)
关于这个问题,MSDN上是这样说的
以交互式用户身份配置 Office
< type="text/javascript">loadTOCNode(3, 'moreinformation'); 要在交互式用户帐户下设置 Office 自动化服务器,请按照下列步骤操作:
1. 以管理员身份登录到计算机,并使用完整安装来安装(或重新安装)Office。为了实现系统的可靠性,建议您将 Office CD-ROM 中的内容复制到本地驱动器并从此位置安装 Office。
2. 启动要自动运行的 Office 应用程序。这会强制该应用程序进行自我注册。
3. 运行该应用程序后,请按 Alt+F11 以加载 Microsoft Visual Basic for Applications (VBA) 编辑器。这会强制 VBA 进行初始化。
4. 关闭应用程序,包括 VBA。
5. 单击开始,单击运行,然后键入 DCOMCNFG。选择要自动运行的应用程序。应用程序名称如下所示:
Microsoft Access 97 - Microsoft Access 数据库
Microsoft Access 2000/2002 - Microsoft Access 应用程序
Microsoft Excel 97/2000/2002 - Microsoft Excel 应用程序
Microsoft Word 97 - Microsoft Word Basic
Microsoft Word 2000/2002 - Microsoft Word 文档
单击属性打开此应用程序的属性对话框。
6. 单击安全选项卡。验证使用默认的访问权限和使用默认的启动权限已选中。
7. 单击标识选项卡,然后选择交互式用户。
8. 单击确定,关闭属性对话框并返回主应用程序列表对话框。
9. 在 DCOM 配置对话框中,单击默认安全性选项卡。
10. 单击访问权限的编辑默认值。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename>*
IWAM_<machinename>*
* 这些帐户仅在计算机上安装了 Internet Information Server (IIS) 的情况下才存在。
11. 确保允许每个用户访问,然后单击确定。
12. 单击启动权限的编辑默认值。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename>*
IWAM_<machinename>*
* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。
13. 确保允许每个用户访问,然后单击确定。
14. 单击确定关闭 DCOMCNFG。
15. 启动 REGEDIT,然后验证对于要自动运行的 Office 应用程序,是否存在下列注册表项和字符串值:
Microsoft Access 2000/2002:
注册表项:HKEY_CLASSES_ROOT\AppID\MSACCESS.EXE
AppID:{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
Microsoft Access 97:
注册表项:HKEY_CLASSES_ROOT\AppID\MSACCESS.EXE
AppID:{8CC49940-3146-11CF-97A1-00AA00424A9F}
Microsoft Excel 97/2000/2002:
注册表项:HKEY_CLASSES_ROOT\AppID\EXCEL.EXE
AppID:{00020812-0000-0000-C000-000000000046}
Microsoft Word 97/2000/2002:
注册表项:HKEY_CLASSES_ROOT\AppID\WINWORD.EXE
AppID:{00020906-0000-0000-C000-000000000046}
如果这些注册表项不存在,则可以通过在系统中运行以下 .reg 文件来创建它们: REGEDIT4
[HKEY_CLASSES_ROOT\AppID\WINWORD.EXE]
"AppID"="{00020906-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\AppID\EXCEL.EXE]
"AppID"="{00020812-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\AppID\MSACCESS.EXE]
"AppID"="{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}"
注意:该示例 .reg 文件是针对 Access 2000 或 Access 2002 的。如果您使用的是 Access 97,请将 AppID 项更改为: "AppID"="{8CC49940-3146-11CF-97A1-00AA00424A9F}"
16. 重新启动系统。这是必需的。