我开发了一个网站,允许用户上传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相关问答推荐

将 Response.Headers.Add 替换为方法属性decorator

属性包含破折号的 ServiceStack 请求对象?

RNGCryptoServiceProvider - 随机数审核

self 跟踪实体与 POCO 实体

返回 JSON 对象 (ASP.NET WebAPI)

跨子域共享 ASP.NET cookie

使用 JSON.NET 解析 json 字符串

FluentValidation 使用数据库的唯一名称验证

为什么我不能在 ASP.net MVC 中使用服务器控件?

如何使用 javascript 调用 ASP.NET c# 方法

Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用

DBContext.Entry 有什么作用?

如何从 Web API 应用程序返回 PDF

如何在 asp.net 中更改 DataBinder.Eval 的日期格式?

协调 ASP.NET 脚本包和源映射

GridView 按代码隐藏列

LinkBut​​ton 向 OnClick 后面的代码发送值

从服务器下载 ASP.NET 文件

POST 字符串到 ASP.NET Web Api 应用程序 - 返回 null

Appdomain 回收究竟是什么