Использование контейнеров Windsor на веб-фермах - PullRequest
0 голосов
/ 09 июня 2009

Я занимаюсь разработкой веб-приложения с использованием ASP.NET MVC и использую 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;
    }

Это правильный подход для приложений, которые будут работать на веб-фермах? Есть ли какие-либо проблемы, о которых мне нужно знать? Есть ли лучшее место для размещения контейнера?

Я знаю, что состояние Application не используется несколькими серверами в веб-ферме, но я полагаю, что это не должно быть проблемой, если данные, хранящиеся в состоянии Application, не зависят от запроса?

1 Ответ

0 голосов
/ 09 июня 2009

Я предпочитаю хранить контейнер в статическом шлюзе , как IoC Айенде от Rhino Commons

...