我尝试从“.Net Framework 3.5 Dll Library Project”中获取一个Com dll(在VB6中开发),我收到以下错误:
由于以下错误,检索具有CLSID {...}的组件的COM类工厂失败:800aea5f。
在同一台机器上,我尝试从VBScript中获取COM dll并且它工作正常。 另外,我试图取消注册并重新注册dll而没有很好的结果。
现在从windows applcation .net 3.5我可以使用COM dll,但是不可能从Web应用程序(也可以使用和不使用模拟配置到web.config)中进行操作。
DCOM属性: 一般 - >验证=默认 安全 - >所有属性=默认 身份 - > Identity =启动器用户
有什么建议吗?
答案 0 :(得分:1)
这台机器是x64服务器吗?如果是这样,您确定.NET程序集标记为强制x86吗?如果它标记为AnyCPU并且您尝试在x64计算机上运行它,您将加载为x64程序集,然后无法加载VB6 Dll,因为您只能在32位模式下运行...
答案 1 :(得分:0)
错误是指向用户权限的链接。
呼叫的树是:WebApplication - > WcfService - > .Net 3.5 dll - > COM dll
即使我在WebApplication web.config上设置了本地用户模拟,WcfService也会使用用户关联到VirtualDirectory的“网络服务”应用程序池。
我只是将ApplicationPool的默认用户更改为LocalSystem,调用COM工作正常