【发布时间】:2011-08-08 00:23:54
【问题描述】:
我在我的 .Net Web 应用程序中使用了 COM dll。这适用于多台不同的机器。
但是在一台特定的机器上,我收到以下错误:
无法将“CServer.CApplicationClass”类型的 COM 对象转换为接口类型“CServer.ICApplication”。此操作失败,因为 IID 为“{CF0DFA28-046B-4C7D-8AA9-F4B7477D8CAE}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:加载类型库/DLL 时出错。 (来自 HRESULT 的异常:0x80029C4A (TYPE_E_CANTLOADLIBRARY))。
我已经使用regsvr32 命令注册了 dll。
我还为这个 dll 创建了一个 COM+ 应用程序。
通过注册表运行搜索
我可以在很多地方找到钥匙。
我还尝试注销 dll 并删除计算机上对该 dll 的所有引用。然后重新添加dll并重新注册。
我编写了一个简单的 windows 脚本文件来测试 dll。这工作正常。但是问题存在于我在 iis 中运行的 .net 项目中。
谁能帮我解决这个问题?..
如果您需要更多信息,请发表评论。谢谢。
【问题讨论】:
-
你的服务器是什么? x64/x86?您的应用程序池设置为什么? COM 程序集是为什么而构建的?
-
windows 7 Professional 64 位..应用程序池设置为应用程序池设置为 .NET Framework v2.0.50727。 COM 程序集的构建允许我的应用程序访问\调用一些用 delphi 编写的遗留代码。
-
这是您安装的第一个 64 位服务器吗?
-
应用程序池用户是否具有对注册表和 COM 服务器激活所需文件的读取权限?
-
不,这不是我安装的第一个 64 位服务器,是的,应用程序池用户具有读取权限。
标签: asp.net exception com registry