2009-06-09 75 views
0

我正在開發一個使用ASP.NET MVC的Web應用程序,並將Windsor Castle作爲IoC容器(包括WindsorControllerFactory和我的內部組件)。目前我創建和存儲這樣的容器到ApplicationHttpApplicationState):在網絡農場上使用Windsor容器

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場運行的應用程序適當的解決辦法?我需要注意哪些問題?有沒有更好的地方放置容器?

我知道Application狀態不是在Web場中的服務器之間共享,但我認爲只要存儲在Application狀態中的數據不是特定於請求的數據,這應該不會成爲問題?

回答

0

我寧願存儲在static gateway像Ayende的IoC from Rhino Commons

+0

橫切關注點的容器可以解決不是由耦合與靜態引用代碼更優雅,但無論如何 - 這並不真的有很多事要做我問了什麼。即使您使用靜態網關,它也不會跨請求保留。 – 2009-06-10 05:29:37