Adi*_*oso 4 asp.net iis asp.net-mvc autofac asp.net-web-api
我一直在使用Autofac与ASP.NET Web API和的集成ASP.NET MVC.一切似乎都运行良好,除了我对注册的对象的生命周期有一些挥之不去的怀疑SingleInstance(),更广泛地说是关于容器本身的生命周期.
例如,如果我按如下方式声明一个类:
public class Cache {
private Dictionary<int, int> _internalCache = new Dictionary<int, int>();
}
Run Code Online (Sandbox Code Playgroud)
并将其注册为容器中的单实例:
var builder = new ContainerBuilder();
builder.RegisterType<Cache>.SingleInstance();
var container = builder.Build();
Run Code Online (Sandbox Code Playgroud)
假设我同时使用相同的container实例ASP.NET MVC和ASP.NET Web API集成,托管IIS,容器和AppDomain回收时在其下注册的实例会发生什么?内容会_internalCache怎样?如果我Cache在AppDomain回收之前和之后解决,我仍会得到相同的实例吗?
回收IIS应用程序池将重新启动w3wp.exe.回收后,一切都将被重置,你将有一个新的实例Cache:一个实例Cache为每个应用程序池实例.
顺便说一句,当您回收应用程序池时,IIS将:
当新的应用程序池启动时,另一个仍处于活动状态,因此可以Cache在同一时刻生成2个并发实例但在2个不同的应用程序池中.
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |