我开发了一个网站,允许用户上传office文档,然后使用office对象模型将文档转换为HTML文件,然后将其显示在iFrame中.
当然,我已经包含对Office.interop.word的引用,并且该站点在我的开发机器上运行良好.当我将其上传到我的生产服务器时,网站运行正常,直到我尝试上传文档.我最初得到一个类似的错误,说"COM对象没有注册".我意识到我的生产服务器上没有安装Word.所以我安装了word,现在当服务器尝试访问word对象模型时,我收到以下错误:
检索COM类工厂CLSID组件{000209FF-0000-0000-C000-000000000046}失败,原因是以下错误:80070005次访问被拒绝.(HRESULT异常:0x80070005(E_ACCESSDENIED))
我在注册表中搜索了相应的CLSID,并找到了相应的文件夹.我说完全控制IUSR_帐户,因为我最终加入完全控制"每个人"错误的持久性,并确保这些权限继承下来到该文件夹的其余部分.然后我添加了对IUSR_的完全控制,并最终再次将"every"添加到我的microsoft office文件夹中.
我不知道授予哪些其他权限以及为了使"访问被拒绝"错误消失的地方. 我一定是在错误的地方给予他们,因为据我知道,我不能有任何比"所有人""完全控制"更宽容.
谁能摆脱任何光明?
我有一个公开COM接口的本机c ++ COM服务器.我可以成功使用本机c ++客户端应用程序来获取和使用服务器中公开的接口.
当我使用.net客户端引用服务器时,我收到错误:
由于以下错误,检索具有CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的组件的COM类工厂失败:80080005服务器执行失败(HRESULT异常:0x80080005(CO_E_SERVER_EXEC_FAILURE)).
...即使COM服务器启动并成功运行(启动只需要大约1或2秒).
但是只有在服务器注册为本地服务器时才会出现上述错误.如果我将服务器注册为Windows服务,.net客户端可以成功获取并使用这些接口.
我正在以Windows 7 64位的管理员身份做这一切.COM服务器位于本地计算机上.
我检查了下面的线程,但没有提供答案: 由于以下错误,检索CLSID {XXXX}组件的COM类工厂失败:80080005
到目前为止,在这一天花了一天半......可能是什么问题?
更多信息:
我已经与vs2005合作了.我最近更新到vs2010,现在我遇到了这个问题.我尝试使用相同的结果构建.net客户端定位框架2.0,3.5和4.0.
谢谢
我开发了一个C#程序,它从SQL Server数据库中提取数据,然后生成包含数据的Word文档.我已将程序设置为在Windows Server 2003框上作为SSIS作业的一部分运行.该程序以用户SQLSVC运行,该用户没有管理权限.当我以SQLSVC身份登录并运行程序时,它会正确执行.但是,当程序作为SSIS作业自动运行时,它会冻结在以下代码行中
Microsoft.Office.Interop.Word.Application word =
new Microsoft.Office.Interop.Word.Application();
Run Code Online (Sandbox Code Playgroud)
当我强行终止进程时,会生成以下错误消息.
Error Message: System.Runtime.InteropServices.COMException (0x80080005):
Retrieving the COM class factory for component
with CLSID {000209FF-0000-0000-C000-000000000046}
failed due to the following error: 80080005.
at IepGlance.Program.CreateNewIepFiles(Dictionary`2
iepDictionary, EasyIepDataContext dbContext)
at IepGlance.Program.Main(String[] args)
Run Code Online (Sandbox Code Playgroud)
据我所知,问题在于DCOM权限.我已经使用dcomcnfg将所有可能的DCOM权限添加到用户SQLSVC,但这没有帮助.还有其他可能的解决方案吗?