在Remotable类中调用函数

时间:2011-03-08 00:05:56

标签: c# .net remoting

我有一个派生自MarshalByRefObject的远程类。我有两个公共函数:TestMethod1和T estMethod2。我从HttpHandler调用它们,它工作正常。现在我添加了一个新函数TestMethod3,它与前面提到的两种方法类似。但是,从同一个处理程序调用此函数并获得一个异常,说“无法找到此应用程序的.exe”,其中exe是远程对象运行的过程。

class HttpHandlerClass : IHttpHandler
{
    RemotingConfiguration.RegisterWellKnownClientType(typeof(RemoteClass),"ipc://completeurl");

    RemoteClass rc = new RemoteClass();

    if (condition1)
        rc.TestMethod1();

    else 
        rc.TestMethod3();
}

class RemoteClass: MarshalByRefObject
{
   public void TestMethod1(int a) { }
   public void TestMethod2(string b) { }
   public void TestMethod3(string c) { }
}

不知道为什么。在我看来,我需要进行一些更改(不知道在哪里),以便识别TestMethod3。

有什么想法吗?

  

输出:无法加载文件或程序集'Project.exe,version = 1.0.0.0,Culture-neutral,publickeytoken = blahblah'或其依赖项之一。系统找不到指定的文件。“

刚才注意到,它正在寻找Project.exe的旧版本,而不是正在执行的版本。

2 个答案:

答案 0 :(得分:0)

使用ICE代替?我在与你相同的情况下挣扎了好几个月,然后在我改变架构的一周内解决了所有问题。

答案 1 :(得分:0)

这只是一个疯狂的猜测,但我在使用远程处理之前遇到过这个问题。

您确定要跟踪的.exe是最新的吗?您可能没有将已编译的文件复制到预期的位置,然后旧方法仍然有效,但新方法将完全中断...