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

当然,我也提到了Office.互操作.word,该网站在我的开发机器上运行良好.当我把它上传到我的生产服务器上时,这个网站运行良好,直到我try 上传一个文档.我最初遇到了一个类似的错误,说"COM对象未注册".我意识到我的生产服务器上没有安装Word.所以我安装了word,现在是when the server tries to access the word object model I receive the following error:

Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

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

我肯定是在错误的地方授予他们,因为据我所知,我不能比"所有人""完全控制"更宽容.

有人能解释一下吗?

推荐答案

这对我很有用:

  1. 在命令行中输入DCOMCNFG
  2. Component Services -> Computers -> My Computer -> DCOM Config
  3. 找到"Microsoft Word 97-2003文档"(如果缺少,请判断您的Word是否也是64位(如果您的Windows是64位),如果它没有运行mmc comexp.msc /32 而不是由Darkseal here建议的步骤1上的DCOMCNFG)
  4. Right click -> Properties
  5. 转到Tab Security并编辑"Customize"(自定义)单选按钮,以便IIS_IUSRS可以拥有启动和访问权限
  6. 转到选项卡标识并 Select "交互式用户"
  7. 应用更改并重试
  8. If all this fails, go also to tab "General" and in "Authentication Level" drop down choose "None".

Asp.net相关问答推荐

ASP.NET控制器上的默认接受媒体类型

无法为媒体类型application/x-www-form-urlencoded生成样本

如何从 dll 文件中提取类的源代码?

如何使用 executeReader() 方法仅检索一个单元格的值

ASP.NET - 在屏幕底部显示应用程序构建日期/信息

ASP.NET Web 应用程序 (.NET Framework) 与 ASP.NET Core Web 应用程序 (.NET Framework) 之间的差异

SameSite 属性如何自动添加到我的 Asp.net_SessionID cookie 中?

ASP.NET 在更新面板更新时显示正在加载...消息

无法确定条件表达式的类型,因为 'string' 和 'System.DBNull' 之间没有隐式转换

Ef core:执行 MaxAsync 时序列不包含任何元素

更改后未应用 CSS

LINQ to Entities 无法识别 MVC 4 中的System.String ToString()方法

oAuth ASP.NET 成员资格提供程序

如何避免 ASP.NET MVC 中的 HttpRequestValidationException 呈现导致异常的相同视图

如何从url中删除returnurl?

MVC3 值 Ajax 文件上传

Azure 网站 301 重定向 - 我应该把它放在哪里?

asp.net core 2.0 - 值不能为空.参数名称:连接字符串

强制 IIS Express 进入classic 管道模式

如何使用 int ID 列更改 ASP.net Identity 2.0 的表名?