我尝试使用运行在单独的Office.Interop服务下的来转换Office文档。此服务在特定帐户下运行(将来使用用户名)。
设置此帐户的所有文件夹访问权限。当我尝试创建任何一个Office应用程序(例如,var app=new Excel.Application())时,我的代码会异常失败:
使用CLSID {XXXX}检索组件的COM类工厂失败,原因是以下错误: E_ACCESSDENIED。
好的,但是我已经为这个CLSID配置了DCOM权限!我打开dcomcnfg.exe,选择带有这个CLSID的组件,打开设置,看到这个服务的用户对这个组件拥有所有的权限。
为什么会抛出这个异常?
发布于 2014-02-19 12:54:19
奥卡伙计们我找到答案了。1)确保您已经安装了一个正确的Office 2007版本。2)确保您只安装了一个PDF\XPS外接程序,并且安装了它的外接程序,您应该运行DCOMCNFG并选择My >DCOM配置。结果是,在office安装之后,注册表中没有CLSID和AppID之间的映射。4)关闭dcomcnfg窗口。现在注册表中有正确的映射。您应该在HKCR\AppID和HKCR\CLSID 5中获取与office相关的所有内容(例如,{XXXXXXX-XXXX.}),对于所有这些id您应该授予访问权限,可以使用以下算法实现这一点:*打开HKCR\AppID{id} key *安装LaunchPermission和ActivatePermission值(代码在堆栈溢出中找到)*设置值"RunAs“作为”交互式用户“
奥卡,你的办公室自动化应该能正常工作,如果我不忘一些步骤的话。
https://stackoverflow.com/questions/21532961
复制相似问题