一尘不染

通过asp.net访问Office Word对象模型导致“由于以下错误而失败:80070005访问被拒绝。”

c#

我已经开发了一个网站,该网站允许用户上传Office文档,然后使用Office对象模型将文档转换为HTML文件,然后将其显示在iFrame中。

当然,我已经包含了对Office.interop.word的引用,并且该站点在我的开发计算机上可以正常工作。当我将其上载到生产服务器时,该站点可以正常运行,直到尝试上载文档为止。我最初遇到一个类似的错误,说“
COM对象未注册”。我意识到Word没有安装在我的生产服务器上。所以我安装了word,现在 当服务器尝试访问word对象模型时,我收到以下错误:

由于以下错误,检索具有CLSID
{000209FF-0000-0000-C000-000000000046}的组件的COM类工厂失败:80070005访问被拒绝。
(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))

我在注册表中搜索了相应的CLSID,并找到了相应的文件夹。我将完全控制权添加到IUSR_帐户,由于错误的持续存在,我最终将完全控制权添加到“所有人”,并确保将这些权限继承到文件夹的其余部分。然后,我将完全控制添加到IUSR_,并再次最终将完全控制添加到“所有人”到我的Microsoft
Office文件夹。

不知道要授予什么其他权限以及在何处使此“访问被拒绝”错误消失。 我必须在错误的位置授予他们,因为据我所知,我不能比“所有人”“完全控制”更宽容。

谁能阐明任何想法?


阅读 262

收藏
2020-05-19

共1个答案

一尘不染

这为我工作:

  1. 在命令行中放 DCOMCNFG
  2. 组件服务->计算机->我的电脑-> DCOM配置
  3. 查找“的Microsoft Word 97 - 2003文档”(如果缺少检查,如果您的Word也是64位(如果您的Windows是),如果它不运行mmc comexp.msc /32 ,而不是DCOMCNFG在步骤1中所建议Darkseal 这里
  4. 右键单击->属性
  5. 转到“选项卡安全”并编辑“自定义”单选按钮,以便IIS_IUSRS可以具有启动和访问权限。
  6. 转到“标签身份”,然后选择“互动用户”
  7. 应用更改,然后重试
  8. 如果所有操作均失败,请也转到“常规”选项卡,然后在“身份验证级别”下拉列表中选择“无”。
2020-05-19