从.Net Framework 3.5无法调用vb6 dll。由于以下错误,检索具有clsid的组件的COM类工厂失败:800aea5f

时间:2011-03-07 11:40:47

标签: .net com vb6

我尝试从“.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 =启动器用户

有什么建议吗?

2 个答案:

答案 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工作正常