C# 无法从NT4计算机上的VB6应用程序创建.NET Framework 1.1组件

C# 无法从NT4计算机上的VB6应用程序创建.NET Framework 1.1组件,c#,com,vb6,nt4,C#,Com,Vb6,Nt4,在NT4机器上运行.NET组件时遇到很多问题。框架1.1已安装,组件在同一框架下编译 该组件是由VB6应用程序调用的web服务的代理。不幸的是,VB6应用程序无法创建组件的实例,并报告以下错误消息“ActiveX组件无法创建对象” 我编写了一个简单的.NET控制台测试应用程序,它创建了一个代理实例并调用GetStockQty。在本例中,一切正常,调用成功,web服务返回有效数量 签名代理组件具有以下COM属性: [ComVisible(true)] [Guid("D1576FA8-F3B1-4f

在NT4机器上运行.NET组件时遇到很多问题。框架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/代码库 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
我还尝试过从VB6项目中删除引用,并在后期创建它,结果是一样的

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

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

可能应该考虑移动到支持的OS,在旧的NT4中有许多安全漏洞,对于Windows NT 4工作站来说,在2004年6月30日是不支持的,而对于Windows NT 4 Server协议来说,2004年12月31日是不支持的。但是客户的财产中仍然有大量的NT4机器。您如何在VB6中调用.Net代理?请发布VB6代码。此外,请使用程序集绑定日志查看器查看程序集是否由于缺少依赖项等原因而无法加载。虽然从.NET控制台应用程序调用程序时,它实际上正在工作,但只有VB6应用程序无法实例化它。是的,NT4将支持Framework 1.1,当从另一个.NET应用程序调用代理组件时,代理组件工作正常,似乎是COM元素出了问题。