导出word时,发布到服务器报错80070005,需要配置服务器环境,如果组件服务中找不到office word,看文章后半段

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

今天遇到了同样的问题,我们出现的问题是不定时出现日志出现报错信息:

Error:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a。 StackTrace: 在 EBidding.DocumentGenerator.GD.WordGenerator.Open(String filePath) 位置 D:\alsmill_KM\VSProject\Ebidding_WebService\DocumentGenerator\GD\WordGenerator.cs:行号 40 6:05:25 未将对象引用设置到对象的实例。 6:05:25 Source:EBidding.DocumentGenerator

在网上这个blog的解决方案,转载记录: 用C#动态生成Word文档功能实现了,在本地的机器运行时是好的,但程序发布安装到远程服务器上就报错了,

报错信息为:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

这使我很纠结,看了很多的信息后,现在才算是搞定了。 为了不忘记特意再此做下记录来! 方法一(推荐):

  检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a

  1.运行dcomcnfg.exe打开组件服务,

  2.依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"->"Microsoft Word 文档"

  3.右键打开“属性”对话框,点击“标识”选项卡,选择"下列用户",把管理员的用户及密码正确填写进去...

  4.点击"安全"选项卡,依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限

  5.请设置web.config中的<identity impersonate="true" userName="Administrator" password="abc123"/>帐号和密码,否则会提示检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

  例如

  <system.web>

  <identity impersonate="true" userName="Administrator" password="abc123"/>

  </system.web>

方法二:   1.控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档

  之后

  2.右键“属性”打开此应用程序的属性对话框。

  3.单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后 自定义->编辑->添加ASP.NET账户和IUSER_计算机名或Network Service用户

  * 这些帐户仅在计算机上安装有 IIS 的情况下才存在。

   确保允许每个用户访问,然后单击确定。

  4.单击确定关闭 DCOMCNFG

组件服务中找不到office word

在.NET环境下,使用word组件进行word操作,实现word的读取、导出等操作时,很麻烦,而且在不同环境下面使用,会有意想不到的兼容性问题,更别提发布部署了。。简直要命。

    so~~不到万不得已,不要去玩。

    VS2010 C#4.0对COM的交互性操作有了新的改进。。。

Automatic object -> dynamic mapping
Optional and named parameters
Indexed properties
Optional “ref” modifier
Interop type embedding (“No PIA”)

------------------------------

这边主要记录一下,在使用word组件时的权限配置。一般在32位机上,安装完word之后,可以在“组件服务”中找到word,并进行配置。不过,部署在64位机,可能就找不到了。

此时:

1、开始->运行->mmc -32

2、文件-添加/删除管理单元

3、从“可用的管理单元”中找到“组件服务”,添加到“所管理单元”,点击“确定”即可

4、添加完之后,即可在此看到word文档。。接下来配置,你懂的~
————————————————

                            
原文链接1:组件服务中找不到office word_组件服务 无office-CSDN博客

链接2:

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 -腾讯云开发者社区-腾讯云

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用docxtemplater导出word文件到服务器本地,您可以按照以下步骤操作: 1. 安装Node.js和docxtemplater模块 首先,您需要安装Node.js。然后,在终端运行以下命令来安装docxtemplater模块: ``` npm install docxtemplater ``` 2. 创建Word模板文件 使用Microsoft Word或其他支持.docx文件格式的软件创建您的Word模板文件。您可以在模板包含占位符,例如{{name}},用于在导出文件替换其为实际值。 3. 编写Node.js代码 编写Node.js代码以使用docxtemplater模块加载您的Word模板文件并将其导出为.docx文件。以下是一个简单的示例代码: ```javascript const fs = require('fs'); const Docxtemplater = require('docxtemplater'); // 读取Word模板文件 const content = fs.readFileSync('path/to/template.docx', 'binary'); // 创建docxtemplater实例并加载模板内容 const doc = new Docxtemplater(); doc.loadZip(content); // 定义要替换的变量 const data = { name: 'John Smith', age: 30, address: '123 Main St.', city: 'Anytown, USA' }; // 将变量应用于模板 doc.setData(data); doc.render(); // 将导出的文件保存到服务器本地 const buffer = doc.getZip().generate({ type: 'nodebuffer' }); fs.writeFileSync('path/to/exported.docx', buffer); ``` 注意,您需要将上述代码的路径替换为您自己的路径。 4. 运行Node.js代码 在终端运行您的Node.js代码以导出Word文件到服务器本地: ``` node path/to/your/script.js ``` 导出的.docx文件将保存在指定的路径

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值