我开发了一个网站,允许用户上传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文件夹。
我不知道该授予哪些其他权限以及在哪里授予这些权限,才能消除“访问被拒绝”的错误。我必须在错误的地方进行授权,因为据我所知,我不能比“所有人”“完全控制”更具包容性。
有人能提供任何帮助吗?
Dim wordApplication As New Microsoft.Office.Interop.Word.Application()
您能详细说明一下“Microsoft不支持使用Word”吗?这似乎是一个笼统的说法。您是否意味着不能通过asp.net访问Word对象模型?即使如此,我仍然想弄清楚为什么会出现此异常。即使不受支持,只要我能够解决这个错误,对象模型就可以满足我的需求。您能指引我一些您提到的替代方案吗? - Camenwolf