【发布时间】:2018-09-16 15:22:15
【问题描述】:
因此,客户端有一个从 2007 年开始用 C 语言编写的 COM 对象,它可以验证加密的会话 cookie。这目前适用于旧版本的 .NET,使用以下内容。
var validate = Activator.CreateInstance(Type.GetTypeFromProgID("Company.Validate"));
新的实现将完全使用 C#。我已将验证逻辑提取到 .NETCore 类库中,然后我们在 ASP.Net Core 项目中引用该类库。
我尝试过 32 位和 64 位版本,以及 IIS 设置。
-
我已经反编译了 COM 对象并引用了它,它在本地工作,但在开发服务器上不工作,我收到以下错误:
检索具有 CLSID {EDC43BC6-5ECD-4501-AEB3-64A17180A13D} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
COM 在本地和开发服务器上注册。
Activator.CreateInstance在这两种环境中都不起作用。注册的 COM ID 和 ProgId 在本地和开发服务器上都是一样的。
问:我错过了什么,或者这不起作用?有没有人在类似的挑战中取得成功?我忽略了什么吗?
【问题讨论】:
-
在 DEV 服务器上运行 OleView(x86 和 x64)并验证您可以创建对象。说它已注册是不够的,特别是当证据似乎不是时
-
TypeLib 和接口都在那里,但是它没有在应用程序 ID 下列出,它在其他机器上。如何注册?
-
知道了,OleView 帮了大忙。谢谢。
标签: c# .net asp.net-core com