问题如下。有一个应用程序正在创建其他 AppDomain 并在那里加载程序集(自定义用户脚本)。在主应用程序中,有一些对象,引用这些对象将所有权转移给那些创建的 AppDomain。对象本身是 MarshalByRefObject,它们是禁用的生命周期服务(InitializeLifetimeService 返回 null)。
所有这些都有效。但是,这些 AppDomain 被创建和销毁......由于卸载域引起的破坏,以及对创建对象的引用 - 都被遗忘了。
一般来说,由于逐渐内存结束,因为这些“被遗忘”的对象似乎没有被释放,尽管它们在任何地方都没有链接,而且作为链接的 AppDomain 早已被卸载......
因此,问题 - 哪里的错误?怎么了?为什么不卸载域名后豁免设施?
没有人想到- 考虑到自己链接到这些对象的每个域加载,并在他卸载后- 导致每个对象RemotingServices.Disconnect (...)。当终身服务不可用时,它可能必须这样做?