根据this answer,ASP.NET MVC创建了一个控制器类的新实例来响应每个请求。
我的问题是,控制器实例什么时候被销毁?
到目前为止,我一直在假设(可能不正确)这些实例在每个响应结束时被销毁,但是我引起了一些数据库池问题,认为它们可能留给了垃圾收集器。有没有人对此有任何见解?
答案 0 :(得分:6)
控制器留给垃圾收集器清理。 但是,如果您在清除旧控制器之前发出新请求,则不应影响您的新请求,因为将为该新请求创建具有新上下文的新控制器。
如果您遇到数据库问题,可能来自您如何处理读/写后端数据库的问题。如果在B发生更改之前实例化了A,则DB上下文“A”不知道在另一个DB上下文“B”中发生的更改。不确定这是否是你遇到的问题。