1

NT4 マシンで .NET コンポーネントを実行しようとすると、多くの問題が発生します。Framework 1.1 がインストールされ、コンポーネントは同じフレームワークでコンパイルされます。

コンポーネントは、VB6 アプリケーションによって呼び出される Web サービスのプロキシです。残念ながら、VB6 アプリケーションはコンポーネントのインスタンスを作成できず、「ActiveX コンポーネントはオブジェクトを作成できません」というエラー メッセージを報告します。

プロキシのインスタンスを作成して GetStockQty を呼び出す単純な .NET コンソール テスト アプリケーションを作成しました。この場合、すべてが機能し、呼び出しは成功し、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

また、VB6 プロジェクトから参照を削除し、同じ結果でレイト バインドを作成しようとしました。

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

1 に答える 1

0

.net コンポーネントが Windows nt4.0 で動作することを確信していますか? 可能だったことは覚えていますが、サポートされていない操作がたくさんありました。

于 2011-03-14T15:11:22.437 に答える