1

尝试在 NT4 机器上运行 .NET 组件时遇到很多问题。安装Framework 1.1,并在同一框架下编译组件。

该组件是由 VB6 应用程序调用的 Web 服务的代理。不幸的是,VB6 应用程序无法创建组件的实例并报告以下错误消息“ActiveX 组件无法创建对象”。

我编写了一个简单的 .NET 控制台测试应用程序,它创建代理实例并调用 GetStockQty。在这种情况下,一切正常,调用成功并且 Web 服务返回有效数量。

签名代理组件具有以下 COM 属性:

[ComVisible(true)]
[Guid("D1576FA8-F3B1-4fa2-8018-677F6E483564")]
public interface IDataFeedProxy
{
    [DispId(1)]
    bool GetStockQty(string sku, out int quantity);
}

[ComVisible(true)]
[Guid("161A22E8-17C4-43f4-96A0-05FC439C7609"),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(IEvents))]
public class DataFeedProxy : IDataFeedProxy

它已使用以下方法在 NT4 机器上注册:

regasm /codebase DataFeedWebService.dll /TLB

这在 XP 机器上运行良好,我只在 NT4 上遇到这些问题。它显然与 COM 相关,但我不知道它可能是什么。


编辑

这是它在 VB6 代码中的完成方式:

Dim oProxy As DataFeedWebService.DataFeedProxy
Set oProxy = New DataFeedWebService.DataFeedProxy
bRet = oProxy.GetStockQty(sPluCode, lQuantity)
Set oProxy = Nothing

Ive 还尝试从 VB6 项目中删除引用并创建它的后期绑定,结果相同。

Dim oProxy As Object
Set oProxy = CreateObject("DataFeedWebService.DataFeedProxy")
4

1 回答 1

0

你确定.net 组件将在windows nt4.0 上运行吗?我确实记得这是可能的,但有很多操作不受支持。

于 2011-03-14T15:11:22.437 回答