<分区>
根据 this answer , ASP.NET MVC 创建 Controller 类的新实例来响应每个请求。
我的问题是, Controller 实例何时被销毁?
到目前为止,我一直假设(可能是错误的)这些实例在每个响应结束时被销毁,但我遇到的一些数据库池问题让我认为它们可能留给了垃圾收集器。有人对此有任何见解吗?
<分区>
根据 this answer , ASP.NET MVC 创建 Controller 类的新实例来响应每个请求。
我的问题是, Controller 实例何时被销毁?
到目前为止,我一直假设(可能是错误的)这些实例在每个响应结束时被销毁,但我遇到的一些数据库池问题让我认为它们可能留给了垃圾收集器。有人对此有任何见解吗?
最佳答案
Controller 留待垃圾收集器清理。 但是,如果您要在清理旧 Controller 之前发出新请求,那么它应该不会影响您的新请求,因为将为该新请求创建具有新上下文的新 Controller 。
如果您遇到数据库问题,可能是因为您在后端处理读取/写入数据库的方式。如果 A 在 B 中发生更改之前实例化,则数据库上下文“A”不知道另一个数据库上下文“B”中发生的更改。不确定这是否是您遇到的问题。
关于c# - ASP.NET Controller 何时被销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31800912/