1

私は.Netアセンブリを介してNavisionとCOM相互運用しようとしています-特にMSXMLインターフェイスを使用しています。これにより、次のエラー メッセージが表示されます。

アセンブリ "C:\Users\bra\Documents\Visual Studio 2008\Projects\SOAPROXY\SOAPROXY\bin\Release\SOAPROXY.dll" をタイプ ライブラリに変換できませんでした。'SOAPROXY.ISOoap.PostEnvelope(#0), SOAPROXY' の処理中にタイプ ライブラリ エクスポータでエラーが発生しました。エラー: タイプ ライブラリ エクスポーターは型 'MSXML2.IXMLDOMDocument' を読み込めません (エラー: System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Interop.MSXML2, Version=6.0.0.0, Culture=neutral, PublicKeyToken=fbdb4bb4a7dccef2' またはいずれかを読み込めませんでした)その依存関係. 指定されたファイルが見つかりません. ファイル名: 'Interop.MSXML2, Version=6.0.0.0, Culture=neutral, PublicKeyToken=fbdb4bb4a7dccef2'). ソープロキシ

基本インターフェースは次のように定義されます。

[Guid("some guid")]
[ComVisible(true)]
public interface ISoap
{
    IStatus State { get; }

    IXMLDOMDocument PostEnvelope(IXMLDOMDocument envelope, string action, string endpoint, string print, string store, string location);
}

[ClassInterface(ClassInterfaceType.None)]
[ComVisible(true)]
public class Soap : ISoap
{
     ...
}

手がかりはありますか?

4

2 に答える 2

1

MSXML6 の Interop ラッパーを GAC しましたか? Fusion がアセンブリのロードに失敗しているようです。それを解決するには、GAC を実行するだけです。または、Fusion ロード パスに配置します。

しかし、SOAP Web サービスへの要求を行うために MSXML が必要な理由がわかりません。.NET BCL に組み込まれているWebClient ad XmlDocumentを使用しないのはなぜですか?

あなたが上で書いたことから、XML またはより具体的には SOAP を話す外部 Web サービスに接続するために、Navision の「拡張機能」(おそらく正しい言葉ではないかもしれません) を構築したいと思っていると思います。また、.NET で Navision 拡張機能を構築できるが、wsdl.exe または svcutil.exe を使用できないと仮定すると、2 つの Web サービス スタックのツールが .NET に組み込まれています。それが本当なら、.NET で利用できる下位レベルの HTTP および XML クラスを使用しないのはなぜでしょうか?

COM相互運用はまったく必要ありません。

于 2009-05-29T16:53:51.690 に答える
0

SOAP Web サービスを介して Navision と通信したいように思えます。そのためには、Web サービス用の .NET の機能、つまり WCF (Windows Communication Foundation) を使用する必要があります。

于 2009-03-31T13:55:20.223 に答える