我有一个派生自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的旧版本,而不是正在执行的版本。
答案 0 :(得分:0)
使用ICE代替?我在与你相同的情况下挣扎了好几个月,然后在我改变架构的一周内解决了所有问题。
答案 1 :(得分:0)
这只是一个疯狂的猜测,但我在使用远程处理之前遇到过这个问题。
您确定要跟踪的.exe
是最新的吗?您可能没有将已编译的文件复制到预期的位置,然后旧方法仍然有效,但新方法将完全中断...