我正在使用ASP.NET MVC开发Web应用程序,我使用Windsor Castle作为IoC容器(WindsorControllerFactory
和我的内部组件)。目前我正在创建容器并将其存储到Application
(HttpApplicationState
)中,如下所示:
protected void Application_Start()
{
...
IWindsorContainer windsorContainer = new WindsorContainer();
Application["WindsorContainer"] = windsorContainer;
...
}
protected void Application_End()
{
IWindsorContainer container = (IWindsorContainer)Application["WindsorContainer"];
container.Dispose();
Application["WindsorContainer"] = null;
}
对于将在Web场上运行的应用程序,这是一种正确的方法吗?我需要注意哪些问题?有没有更好的地方放容器?
我知道在Web场中的服务器之间不共享Application
状态,但我认为只要存储在Application
状态的数据不是这个问题就不会有问题请求的具体情况?