2

私は多くの検索を行い、見つけた提案を行いましたが、何も機能していないようです。数値を返す最も単純な C# DLL ファイル:

namespace TestClass
{
    public class Class1
    {
        public int tester()
        {
            return 5;
        }
    }
}

コールドフュージョンのコード:

<cfobject type=".NET" name="myDLL" class="TestClass.Class1" assembly="d:/path/to/dll/TestClass.dll">

私の試みはすべて、このエラーにつながりました:

Class TestClass.Class12 not found in the specified assembly list. 
The assembly that contains the class must be provided to the assembly attribute. 

問題がどこにあるのかわかりません。どんな助けでも大歓迎です。

また、以下のコードは機能します。

<cfobject type=".NET" name="seClass" class="System.Environment">
<cfoutput>#seClass.Get_Version().ToString()#</cfoutput>
4

1 に答える 1

2

これを正しく行うには、トリッキーな試行錯誤が必要になる場合があります。ただし、エラーは、おそらく jnbridge ディレクトリにある JNBDOtNetSide.exe.config ファイルの一部であるアセンブリ リストを参照しています (このディレクトリへのパスは、サーバーの設定方法によって異なります)。

ファイル内で、コメントアウトされた xml ノード<jnibridge>が次のように表示されます。

   <!--
    <assemblyList>
        <assembly file="path to first .NET-side assembly"/>
        <assembly file="path to second .NET-side assembly"/>
    </assemblyList>
    -->

そこにパスを配置して、サービスを再起動してみてください。その他の試行事項 - アセンブリをグローバル キャッシュに追加し、(最後の手段として) Web-INF でインスタンス化されたコア プロキシ jar ファイルを削除します。私のブログ (coldfusionmuse.com) で「.NET 統合」を検索すると、作業を開始するための手がかりがいくつか見つかります。私の経験では、ここで多くの試行錯誤があります。

于 2012-08-27T19:01:41.207 に答える