用C#动态生成Word文档功能实现了,在本地的机器运行时是好的,但安装到远程服务器上就报错了,让我头疼了好久,看了很多的信息后,现在才算是搞定了。 为了不忘记特意再此做下记录来!
程序安装到远程服务器上,首先报的错误代码就是80070005(检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005)
关于这个问题,MSDN上是这样说的
以交互式用户身份配置 Office
要在交互式用户帐户下设置 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: Microsoft Excel 97/2000/2002: Microsoft Word 97/2000/2002: 如果这些注册表项不存在,则可以通过在系统中运行以下 .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. | 重新启动系统。这是必需的。 |
参考:http://support.microsoft.com/kb/288366/zh-cn