это последнее средство после многих дней поиска в Google, чтобы попытаться найти окончательный ответ на мой вопрос.
Я создал службу Windows, форму Windows и объект удаленного взаимодействия (все в C #). Я использую объект Remoting для связи между службой и формой с помощью событий.
Вот упрощенный пример типичного взаимодействия между объектами:
Это все работает нормально, все прекрасно взаимодействует первые 5 минут или около того. После этого связь между объектами каким-то образом прерывается, и я больше не могу общаться между объектами.
Первой попыткой решения проблемы было перезапись метода InitializeLifetimeService для возврата значения null. Это не помогло (хотя может избежать проблем с арендой в будущем).
Вторая попытка заключалась в том, чтобы сделать мои AdminForm и AdminService спонсорами RemoteObject , и настроить их на продление аренды объекта. Еще раз не устранил проблему.
В различных поисковых запросах я обнаружил, что кто-то упоминал что-то об обработчиках событий, собирающих мусор. Я не уверен, проблема в этом или нет, но я подумал, что упомяну об этом.
Это ошибка, которая появляется после того, как соединение простаивает более 5 минут:
System.Runtime.Remoting .RemotingException не было обработано кодом пользователя
Message = "Запрошенная служба не найдена"
Source = "System.Runtime.Remoting"
Самое странное в этом то, что это происходит на стороне AdminService . AdminForm вызывает метод для удаленного объекта RemoteObject . Это вызывает событие, а затем AdminService видит это событие и пытается вызвать метод LoadFormData (строковые данные) RemoteObject , и здесь возникает исключение.
Я совершенно измотан поиском в Google, так как не могу найти то, что мне нужно, чтобы исправить.