我开发了一个网站,允许用户上传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

如何在编译时为我的 ASP.NET 项目中的每个控制器生成一个单独的 OpenAPI Swagger.json 文件?

Thread.CurrentPrincipal 错误地声称是匿名的

强制从 /bin 而不是 GAC 加载程序集?

从 asp.net 中的 Web.config 获取连接字符串

self 跟踪实体与 POCO 实体

如何在页面加载之前运行 JavaScript 代码?

如何在 ASP.NET 中使用时区?

HttpWebRequest 未通过凭据

什么相当于 ASP.NET 中的 cron 作业(job)?

asp.net Button OnClick 事件未触发

ASP.Net:在共享/静态函数中使用 System.Web.UI.Control.ResolveUrl()

可空日期时间转换

如何设置 CSS 切换器

如何在 C# 中转换 TryCast?

在asp.net mvc 3中实现FilterAttribute,IActionFilter和从ActionFilterAttribute继承有什么区别?

回发后 Document.Ready() 不起作用

aspnet_compiler 发现错误版本的 System.Web.WebPages 1.0.0.0 而不是 2.0.0.0

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

在 Asp.Net MVC 5 中获取登录用户的用户 ID