在我Application_Start
我配置使用Unity統一,自動註冊工具:統一配置應用程序池重啓後失蹤
UnityFactory.Configure(config => config
.Include(If.ImplementsITypeName, Then.Register())
.ExcludeSystemAssemblies()
);
我UnityFactory
類是靜態的。 Configure
工作如下:
public static void Configure(Func<IAutoRegistration,IAutoRegistration> configuration)
{
// Store the configuration to be able to apply it again when needed
UnityFactory.configuration = configuration;
// Create new UnityContainer
container = new UnityContainer();
// Apply configuration
configuration(container.ConfigureAutoRegistration()).ApplyAutoRegistration();
}
它運行IIS7下,當它啓動時,一切工作正常。
只要應用程序池已被回收,它就停止工作。不知何故,配置會搞砸了,它不能再解決我的課了。但是,UnityFactory
類中的靜態字段configuration
仍包含第一次提供的配置。所以班級本身並沒有改變。
Application_Start
方法在應用程序池回收後未觸發,因此不會再應用該配置。
如果我設置了一個斷點並再次手動應用配置,它將再次運行。
這裏發生了什麼?爲什麼Unity會忘記我所有的課程?是否有一個我可以訂閱的活動讓我知道游泳池何時回收?