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

要做到这一点,这可能需要一些棘手的试验和错误。但是错误是指一个可能是 JNBDOtNetSide.exe.config 文件的一部分的程序集列表,该文件可以在 jnbridge 目录中找到(该目录的路径取决于您设置服务器的方式)。

在该文件中,您会发现一个注释掉的 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 回答