【发布时间】:2017-06-05 21:40:03
【问题描述】:
我正在使用https://www.npmjs.com/package/node-msoffice-pdf 将单词转换为 pdf。该解决方案在我的计算机上完美运行。
我在 IIS 中更新了我的应用程序,但在调用将 docx 转换为 pdf 的 Web 服务时出现此错误:
由于以下错误,检索具有 CLSID {000209FF-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80070005 访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。
我已经逐步尝试了几个答案和教程,例如:
- Accessing Office Word object model through asp.net results in "failed due to the following error: 80070005 Access is denied."
- Retrieving the COM class factory for component with CLSID failed due to the following error: 80070005 Access is denied
- https://jayeshsidhwani.wordpress.com/tag/hresult-0x80070005-e_accessdenied/
- https://waheedrous.wordpress.com/2014/01/26/error-office-interop-assemblies
但我无处可去。
我也尝试在服务器上运行我的应用程序,但作为本地主机运行,它运行良好,零问题。
我注意到错误消息中的 CLSID 与 Microsoft Word 97 - 2003 Document Component Service App ID 不同。
唯一让我有所收获的教程是http://toastergremlin.com/?p=543。错误消失了,但 Word 没有打开,网络服务卡住了。
在 Microsoft Word 97 - 2003 文档组件服务中,我尝试添加以下用户:NETWORK_SERVICE、IIS_IUSRS、PC\Users 以及与我的网站关联的应用程序池。
【问题讨论】:
-
与您的权限问题没有直接关系,但使用与来自 Web 服务器的 Office COM 对象的互操作可能非常容易出错。
-
@EricJ。我想我开始体验到了:)
-
您应该能够确定它尝试在注册表中加载的 dll。 HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046}
-
@user957902 我明白了:image.prntscr.com/image/9b849310b651468eb892e662ea4c2c04.png
标签: c# asp.net iis interop windows-server-2008-r2