2011-09-02 2 views
1

ASP.Net 프로젝트 인 WCF 레이어에 Castle Windsor를 구현할 계획입니다. 캐슬 윈저의 문서를 살펴보면 컨테이너를 한 번만 만들고 그것을 사용한 후에 처분해야한다고했습니다. WCF에서 컨테이너를 생성해야하는 시나리오에서이 시점에 도달했습니다. 처음에는 global.asax.vb에 Application_start를 두었다가 Application_End에 처리 할 것을 고려했지만 응용 프로그램 풀이 재생되거나 iis가 다시 시작될 때 application_end가 호출됩니다.성 윈저 - WCF 서비스에서 컨테이너 생성 및 처리

그래서 두 번째로 Session_start와 Session_end가 나왔습니다. 다시 세션 끝은 Inproc 유형에서만 작동합니다. 또한 일정량의 유휴 시간이 지나면 호출 될 수도 있습니다.

세 번째 옵션은 각 메서드를 호출하여 인스턴스를 만들고 각 메서드 후에 닫는 것입니다. 그것은 내가 아는 것이 바람직하지 않습니다.

그래서 가장 좋은 방법은 무엇입니까?

미리 감사 사이

답변

2

에 당신은 일반적으로 응용 프로그램 수명 당 한 번만 IOC 컨테이너를 구성하고, Application_Start()에서이 일을하는 것은 완벽하게 합리적인 것 같다 것입니다. 각각의 새로운 세션마다 또는 요청마다이를 재구성하는 것은 불필요한 작업을 수행하는 것일뿐입니다. 또한, 나는 이것이 성능을 해칠 수 있다고 생각합니다.

Application_Start()/Application_End() 접근 방식에 문제가없는 것 같습니다. 자원이나 그와 비슷한 것이 누출 될 수 있다는 것을 두려워하면 이러한 두려움은 타당하지 않습니다.

+0

답장을 보내 주셔서 감사합니다. 그 말이 맞습니다. 그 접근 방식으로 나아갈 것입니다. – Sai