相关疑难解决方法(0)

通过asp.net访问Office Word对象模型导致"由于以下错误而失败:80070005访问被拒绝."

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

不知道授予哪些其他权限以及为了使"访问被拒绝"错误消失的地方. 我一定是在错误的地方给予他们,因为据我知道,我不能有任何比"所有人""完全控制"更宽容.

谁能摆脱任何光明?

c# vb.net asp.net office-interop

49
推荐指数
4
解决办法
7万
查看次数

COM服务器的.net接口失败,0x80080005

我有一个公开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.

谢谢

.net com interop

6
推荐指数
1
解决办法
5603
查看次数

Office自动化的DCOM故障

我开发了一个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,但这没有帮助.还有其他可能的解决方案吗?

c# windows dcom ms-office

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×2

.net ×1

asp.net ×1

com ×1

dcom ×1

interop ×1

ms-office ×1

office-interop ×1

vb.net ×1

windows ×1