0
ASP.NET MVC를 사용하여 웹 응용 프로그램을 개발 중이며 Windsor Castle을 IoC 컨테이너로 사용하고 있습니다 (WindsorControllerFactory
및 내 내부 구성 요소 모두).웹 농장에서 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;
}
이 웹 팜에서 실행되는 응용 프로그램에 대한 적절한 접근 방법이다 : 현재 나는이 같은 Application
(HttpApplicationState
)에 컨테이너를 생성하고 저장하는거야? 내가 알아야 할 문제가 있습니까? 컨테이너를 넣을 수있는 더 좋은 곳이 있습니까?
웹 팜의 여러 서버에서 공유되는 상태가 Application
인 것을 알고 있지만 Application
상태에 저장된 데이터가 요청에 특정한 것이 아니라면이 문제가 발생하지 않아야합니다.
크로스 커팅 문제와 같은 static gateway에서 컨테이너를 저장하는 것을 선호하지만, 어쨌든 -이 정말 함께 할 일이 많이없는 내가 뭘 물었는지. 정적 게이트웨이를 사용하더라도 요청간에 보존되지 않습니다. –
"컨테이너를 넣을 수있는 더 좋은 곳이 있습니까?"라는 질문에 대한 대답이었습니다. 어쨌든, 컨테이너는 대개 응용 프로그램의 나머지 부분에 노출되지 않으므로 많은 차이를 만들지 않습니다. 그리고 정적 IoC *를 사용하면 내부적으로 정적 변수에 저장되어 있기 때문에 요청을 가로 질러 보존합니다. –