2012-08-22 64 views
0

我在Global Application_Start事件中建立一個Unity容器,然後將其存儲在一個靜態變量中,然後通過GLobal類實現的接口上的方法使其全局可用,然後可用,正確地將其轉換爲HttpContext .Current.ApplicationInstance,一次很好。當應用程序池回收時,靜態變量被清除,Application_Start事件看起來不會被重新執行,並且容器沒有任何註冊。是否允許global.asax,application_start,靜態變量和統一容器進行派對?

有沒有其他人遇到過這個問題?並能解決它?

+0

靜態變量保證顯然是線程安全的。所以不要告訴我要小心靜態變量。 – brumScouse

回答

1

我想你使用的是經典的ASP.NET web表單。在這種情況下,我會主張使用HttpApplicationState(可通過HttpContext.Current.Application)來存儲容器。

看看Chris Tavares對this question的回答。 Chris是Unity的首席維護者。他知道他在說什麼。

+0

是的使用經典的網頁形式。進一步的調查已經引發了一個事實,即application_start正在引發,我正在對我的容器進行「一些」註冊,但我正在查看當前應用程序域中加載的程序集,以確定哪些類型具有要註冊的類型,所有程序集都已加載在初始部署但recylce後,只有一些是,我不能從組件B到組件A(具體實現服務組件),這是導致組件發現問題。如果需要,我現在預裝部件,althoguh架構可以調整。 – brumScouse

+0

耶穌上面的這段話有點粗略.... ^^^^ – brumScouse

相關問題