2009-11-03 2 views
0

WCF 서비스가 있고 Spring.ServiceModel.Activation.ServiceHostFactory를 my * .svc의 팩토리로 사용합니다. 필요한 것은 서비스가 처음 호출되거나 다시 시작될 때 캐시에 일부 데이터를로드하는 것입니다. 최선의 방법을 제안 해 주시겠습니까? 지금은 Spring.ServiceModel.Activation.ServiceHostFactory에서 상속 받았으며 거기에 코드를 넣어 두었지만 더 좋은 방법일까요? 미리 Tnx.Spring.net wcf 통합

답변

0

현재 사용자 지정 ServiceHostFactory의 정적 생성자에 이러한 종류의 시작 코드가 있습니다. IIS의 서비스 응용 프로그램 풀과 관련하여 설정에 따라 문제가되지 않습니다.

응용 프로그램 풀의 재활용 설정을 확인해야합니다. 일단 재활용되면 정적 생성자가 다시 호출됩니다.

+0

이것은 내가 한 것과 비슷합니다. 어쨌든 사용자 정의 ServiceHostFactory를 사용해야하지만 tnx는 어쨌든 살펴볼 것입니다. – Alex

0

AOP를 사용하면 '첫 번째 호출'을 얻기 위해 (이미 Spring을 사용하고 있으므로) 호출을 차단할 수 있지만 가장 간단한 방법은 서비스의 생성자에서 캐시 제공자를 호출하거나 초기화 방법.

+0

나는 생성자를 사용하려고 시도했지만 예외 객체를 생성하지 않아야한다는 예외가 생겼다. (캐싱 클래스는 Spring 객체이기도하다). aftercontextloaded와 같은 이벤트가 존재하면 좋을 것입니다. 인터셉터와 관련하여 - 1 차 통화 추적 방법은 무엇입니까? – Alex

+0

컨스트럭터에서 사용중인 코드를 보여 주시겠습니까? 대부분의 경우 컨텍스트에서 검색하려고하는 내용을 삽입하여 Spring API를 직접 호출 할 수 있습니다. – BennyM