http://blog.csdn.net/yiyiwyy326/archive/2007/04/30/1592657.aspx
[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. 重新启动系统。这是必需的。
17.如果还不行就可以尝试此方法::运行框 CMD---mmc -32 ---控制台1(控制台根节点)----文件---添加/删除管理单元-----最后一行(组件服务)-----添加---确定-------回到控制台1------组件服务(计算机--我的电脑--DCOM配置)---microsoft word 文档(microsoft word 97--2003 文档)---位置(选择--在数据所在的计算机上运行应用程序和自此计算机上运行应用程序)----安全--启动和激活全选 访问权限,都选自定义 并添加Network Service 用户的所有权限--------标示 --交互式用户 --------ok确定,,
检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005