From .Net Framework 3.5 can't call vb6 dll. Re

2019-07-14 19:16发布

I try to istanciate a Com dll(developped in VB6) from a ".Net Framework 3.5 Dll Library Project" and I get the following error:

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

On the same machine I try to istanciate the COM dll from a VBScript and it's work fine. In addition I tried to unregister and re-register the dll without good results.

Now from a windows applcation .net 3.5 I can istanciate the COM dll but it's impossible to do from a web application (also with and without impersonate configuration into web.config)

DCOM properties: General --> Authentication = Default Security --> All properties = Default Identity --> Identity = The launcher user

Any suggestions?

标签: .net com vb6
2条回答
神经病院院长
2楼-- · 2019-07-14 20:04

The error is link to User Permissions.

The call's tree is: WebApplication --> WcfService --> .Net 3.5 dll --> COM dll

Even if I set a local user impersonation on WebApplication web.config, WcfService use the user associate to VirtualDirectory's Application Pool that is "NETWORK SERVICE".

Just I change ApplicationPool's Default User to LocalSystem the call to COM work fine

查看更多
爷的心禁止访问
3楼-- · 2019-07-14 20:16

Is this machine an x64 server? If so are you sure that your .NET Assembly is marked as force x86? If its marked as AnyCPU and you attempt to run it on an x64 machine you will load as an x64 assembly which will then fail to load your VB6 Dll because you can only run in 32bit mode...

查看更多
登录 后发表回答