Вызов функции в классе Remotable - PullRequest
1 голос
/ 08 марта 2011

У меня есть класс удаленного доступа, полученный из 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, версия = 1.0.0.0, независимый от культуры, publickeytoken = blahblah 'или одна из его зависимостей.Системе не удается найти указанный файл. "

Только что заметил, что он ищет более старую версию Project.exe, а не ту, которая выполняется.

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

Это просто дикая догадка, но я сталкивался с этой проблемой раньше с удаленным взаимодействием.

Вы уверены, что .exe, к которому вы обращаетесь, актуален? Возможно, вы не скопировали скомпилированный файл в ожидаемое место, и тогда старые методы по-прежнему будут работать, но новый полностью сломается ...

0 голосов
/ 08 марта 2011

Использовать ЛЕД вместо?В течение нескольких месяцев я боролся с той же ситуацией, что и вы, а затем решил все за неделю, когда переключил архитектуры.

...