English 中文(简体)
特殊性 - 世纪初,
原标题:COM Exception - TYPE_E_CANTLOADLIBRARY?

I am using a COM dll in my .Net web application. This works fine on multiple different machines.
However on one particular machine I get the following error:

无法投下聚苯乙烯类的COM物体 接口类型CServer.ICApplication 。 这一行动之所以失败,是因为Query Interface呼吁通信部分为国际排雷与发展协会的接口服务(CF0DFA28-046B-4C7D-8AA9-F4B7477D8CAE}由于以下错误而失败:超负荷型图书馆/DLL。 (摘自HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRaire))。

I have registerd the dll using the regsvr32 command.
I have also created a COM+ application for this dll. Running a search through the registry
I can find the key in numerous places. I have also tried unregistering the dll and deleting all referneces on the computer to this dll. And afterwards re-adding the dll and re-registering it.

I have written a simple windows script file which tests the dll. This works fine. However the problem exists in my .net project which is running in iis.

谁能帮助我?

如果你需要更多的信息,请发表评论。 感谢。

问题回答

I had a similar problem, with the "TYPE_E_CANTLOADLIBRARY" message.

Background: I had a project which used Interop.ReferenceA.dll. This file was created using tlbimp ReferenceA.dll /out: Interop.ReferenceA.dll.

Solution: When I took a look at ReferenceA.dll using RegDllView I noticed that ReferenceA.dll had a subclass, which was the IID shown in the error message. I looked around in the source code of the subclass and noticed that it had a dependency to Interop.ReferenceB.dll.

指出该次级需要通用。 参考 B 工作类型。 因此,我赞成:

regasm /tlb:Interop.ReferenceB.tlb Interop.ReferenceB.dll (使用了32个参照型气体。)

And the error went away.

Make sure your AppPool is set to x86. Also make sure your assembly is targeting only x86.

我也有一个类似的问题。 第一,在经过一些研究后,只有面对这一错误信息,才能获得解冻。 4. 提醒注意,Im在Windows 7上运行一个COM+部分。

在进行了一些无结果的尝试之后,我与登记处进行了交谈。

(1) 未经登记(登记号:vr32-u dllname)

(2) 确保从登记册中删除你对舱单的提及(附录一)。

3) 在构成部分服务中设立空档加应用(服务器)

4) 将申请复制到纸板

5) 处理“c:program file (x86)Complus 申请”,并在你的剪辑板上设置一个有id的夹。

6)将贵重体填入,并登记

7) 回到你的构成部分事务处,在你用“c:program 案卷(x86)Complus 申请表*app id*}”制作的表格中添加内容。

这对我来说就是这样。 希望会有所助益。

我还有一个类似的问题,即错误在我的常设仲裁法院引起,而不是在其他开发商身上引起。

由此可见,我一直在测试一个自动建筑程序,其基础是更新了大会的版本,从而在登记处登记了TLB,其版本比我们通常使用的多。

When trying to get the interface, the server was consistently using the wrong TLB information leading to the wrong assembly. Once I deleted the higher version entry in the registry, it worked fine.

现在,我们必须确保建设进程不会再造成这一问题。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签