当一个MarshalByRef对象从一个AppDomain(1)传递到另一个(2)时,如果你在第二个AppDomain(2)中调用一个方法之前等待6分钟,你会得到一个RemotingException: System.Runtime.Remoting.RemotingException:Object […]已被断开或在服务器上不存在。 有关这方面的一些文件: 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被卸载时收集在AppDomain 1中,即使代理被收集? 有没有一种方法来禁用生命时间,并保持代理(在AppDomain 2)和对象(在AppDomain1)活着,直到代理被定案? 也许与ISponsor …?
我正在关注下面的例子来设置统一与我的服务层一起工作。 我的项目设置与本文中的非常相似,除了为什么在注册服务依赖项时使用PerThreadLifetimeManager,我明白了一切。 请记住,我也在使用我的服务层中使用的通用存储库和unitofwork。 大多数统一的例子使用默认(瞬态)生存期pipe理器,因为我的设置类似于下面的我想知道为什么我应该使用PerThreadLifeimeManager? 如果改变了任何东西,我正在为当前表示层使用ASP.NET Web窗体项目。 container.RegisterType<ICatalogService, CatalogService>(new PerThreadLifetimeManager()) 在asp.net MVC 3中使用EF代码第一个dependency injection的存储库模式