Проблема в следующем. Есть приложение, которое работает над созданием дополнительных доменов приложений и загружает их в сборку (пользовательские сценарии).
В основном приложении есть несколько объектов, ссылки на которые передают право собственности созданным доменам приложений.
Сами объекты - это MarshalByRefObject, и они являются отключенными сервисами времени жизни (InitializeLifetimeService возвращает ноль).
Все это работает. Однако эти AppDomain создаются и уничтожаются ... с уничтожением, вызванным Unload домена, а ссылки на созданные объекты - забываются.
В общем, в результате постепенное прекращение памяти, потому что эти «забытые» объекты не кажутся освобожденными, хотя у них нигде нет ссылок, а AppDomain, который был ссылками, уже давно выгружен ...
Отсюда вопрос - где ошибка? В чем дело? Почему бы не освобождать объекты после выгрузки домена?
Никто не задумывался - учитывать собственные ссылки на эти объекты для каждого загруженного домена, а после его выгрузки - вызывать для каждого объекта RemotingServices.Disconnect (...). Возможно, это придется делать, когда пожизненное обслуживание недоступно?