2011-03-07 74 views
2

我尝试从“.Net Framework 3.5 Dll库项目”中筛选COM DLL(在VB6中开发),并且出现以下错误:从.NET Framework 3.5的不能称之为维生素B6的DLL。检索具有clsid的组件的COM类工厂失败,原因如下:800aea5f

Retrieving the COM class factory for component with CLSID {...} failed due to the following error: 800aea5f.

在同一台机器上,我尝试从VBScript中提取COM DLL,它工作的很好。 除了我试图注销并没有很好的效果重新注册DLL。

现在从Windows的applcation .NET 3.5,我可以istanciate的COM DLL,但它不可能从Web应用程序做的(也有和无假冒配置到web.config中)

DCOM属性: 常规 - >身份验证=默认 安全 - >所有属性=默认 身份 - >身份=发射器用户

任何建议吗?

回答

0

错误是链接到用户权限。

调用的树是:WebApplication的 - > WcfService - > NET 3.5的DLL - > COM DLL

即使我设置的WebApplication的web.config本地用户模拟,WcfService使用用户联想到VirtualDirectory的“网络服务”应用程序池。

只是我将ApplicationPool的默认用户更改为LocalSystem对COM的调用工作正常

+0

是,但现在我得到这个错误..从IClassFactory的CLSID {B096F50D-225B-48CE-846F-6339CD9C4DA7}创建COM组件的一个实例失败,原因是以下错误:从HRESULT 800a01ad异常:0x800A01AD任何线索那是什么? – Fandango68 2017-12-08 01:33:59

1

是本机的X64服务器?如果是这样,你确定你的.NET程序集标记为强制x86?如果它标记为AnyCPU,并且您尝试在x64机器上运行它,则您将加载为x64程序集,然后该程序将无法加载您的VB6 Dll,因为您只能运行在32位模式下...

+0

本机是Win 2003 Server 2003 R2标准版SP2 32位。无论如何,我试过你的解决方案,但我得到了同样不好的结果。谢谢 – raro79 2011-03-08 11:13:24

+0

我也是。在VS2017,Windows 7,本地IIS中将Web应用程序设置为x86,并设置为LocalSystem。同样的错误 – Fandango68 2017-12-08 01:35:36

相关问题