Asp.net 控制器最合适的生命周期管理器?

Asp.net 控制器最合适的生命周期管理器?,asp.net,asp.net-mvc,unity-container,Asp.net,Asp.net Mvc,Unity Container,目前,我正在使用Microsoft.Practices.Unity.HierarchyCallifeTimeManager作为控制器的生存期管理器,因为它对包含的对象调用dispose。然而,我现在似乎遇到了跨线程问题(多个请求变量混淆了)。进一步阅读lifetime manager,它实现了一个单例模式,我认为这是我的问题 我使用的是Unity2.1。是否可以推荐最合适的生命周期管理器用于ASP.net MVC控制器,该管理器将在每个请求结束时对其包含的每个对象调用dispose 非常感谢。我

目前,我正在使用Microsoft.Practices.Unity.HierarchyCallifeTimeManager作为控制器的生存期管理器,因为它对包含的对象调用dispose。然而,我现在似乎遇到了跨线程问题(多个请求变量混淆了)。进一步阅读lifetime manager,它实现了一个单例模式,我认为这是我的问题

我使用的是Unity2.1。是否可以推荐最合适的生命周期管理器用于ASP.net MVC控制器,该管理器将在每个请求结束时对其包含的每个对象调用dispose


非常感谢。

我认为任何不作为单例实现的都应该有效。你需要根据自己的需要挑选最好的
PerThreadLifetimeManager
听起来不错,尽管它不调用
Dispose
。但是,当线程死亡时,它将被垃圾收集。

我认为任何不作为单例实现的都应该工作。你需要根据自己的需要挑选最好的
PerThreadLifetimeManager
听起来不错,尽管它不调用
Dispose
。但是,当线程死亡时,它将被垃圾收集。

谢谢。你知道IIS是否保证每个请求都有一个唯一的线程吗?如果是这样,使用PreThreadLifetimeManager将有效地成为PerRequestLifetimeManager,对吗?谢谢。我将找到解决Dispose问题的方法。我的理解是,IIS请求不保证在调用期间按照绑定到线程。IIS可以切换线程,但只能在请求周期中的一个非常特定的点上切换,即在
BeginRequest
Page\u Load
之间切换。当我们谈论控制器的生命周期管理时,我不认为它最终会对这里的任何事情产生任何影响。谢谢。你知道IIS是否保证每个请求都有一个唯一的线程吗?如果是这样,使用PreThreadLifetimeManager将有效地成为PerRequestLifetimeManager,对吗?谢谢。我将找到解决Dispose问题的方法。我的理解是,IIS请求不保证在调用期间按照绑定到线程。IIS可以切换线程,但只能在请求周期中的一个非常特定的点上切换,即在
BeginRequest
Page\u Load
之间切换。当我们谈论控制器的生命周期管理时,我不认为它最终会对这里的任何事情产生任何影响。