IIS 发布 之 Word导出本地测试正常,发布报错

时间:2021-08-08 15:26:06

  用C#动态生成Word文档功能实现了,在本地的机器运行时是好的,但程序发布 IIS 或 远程服务器 上就报错,

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

  报错如下图:

  IIS 发布 之 Word导出本地测试正常,发布报错

  IIS 发布 之 Word导出本地测试正常,发布报错

方法一(推荐):

  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。