【发布时间】:2011-01-25 11:55:35
【问题描述】:
当 MarshalByRef 对象从 AppDomain (1) 传递到另一个 (2) 时,如果您等待 6 分钟,然后在第二个 AppDomain (2) 中对其调用方法,您将收到 RemotingException:
System.Runtime.Remoting.RemotingException: 对象 [...] 已断开连接或 服务器上不存在。
关于这个问题的一些文档:
- http://blogs.microsoft.co.il/blogs/sasha/archive/2008/07/19/appdomains-and-remoting-life-time-service.aspx
- http://blogs.msdn.com/cbrumme/archive/2003/06/01/51466.aspx - 实例生命周期,cbrumme 说“我们应该解决这个问题。” :(
如果我错了,请纠正我:如果 InitializeLifetimeService 返回 null,那么当 AppDomain 2 Unloaded 时,即使收集了代理,也只能在 AppDomain 1 中收集对象?
有没有办法禁用生命周期并保持代理(在 AppDomain 2 中)和对象(在 AppDomain1 中)活动,直到代理完成?也许与 ISponsor...?
【问题讨论】:
标签: c# .net remoting appdomain object-lifetime