2009-12-07 3 views
0

현재 서비스 용으로 COM DLL을 사용하는 WCF 서비스가 있습니다. COM 개체는 한 번만로드되고 싱글 톤을 통해 저장됩니다. 첫 번째 실행은 COM 개체를로드하는 데 약 1 분이 걸리는 문제입니다. WCF 서비스는 Windows 서비스를 통해 호스팅됩니다. Windows 서비스의 시작을 통해 COM 개체 싱글 톤을 어떻게로드 할 수 있는지 궁금합니다.WCF 서비스 용 COM 개체를로드하기위한 시작 코드

protected override void OnStart(string[] args) 
{ 
    if (host != null) 
    { 
     host.Close(); 
    } 

    Type serviceType = typeof(MyService); 
    host = new ServiceHost(serviceType); 
    host.Open(); 

    objectConn.getInstance() 
} 

Windows 서비스 시작의 OnStart에서 Singleton의로드를 추가하려고하면 항상 실패합니다. 이 올바른 방법을 objectConn 인스턴스에 대한 시작 루틴을 추가 할 경우 물어 싶습니다. MyService construtor에 싱글 톤 로딩을 시도했지만 첫 번째 서비스 호출을 어색하게 만드는 호출하는 웹 서비스 작업/메소드에 대한 첫 번째 호출로만 호출됩니다.

필자는 DependencyInjection에 대해 읽었지만 COM 객체 소스를 한 번만로드하려고하므로 추가 된 동작이 적용되지 않는다고 생각합니다.

답변

1

당신은 아마이 작업을 수행 할 수 있습니다 -하지만 난

host.Open() 

호출하기 전에 그 일을 추천 할 것입니다. 이 호출은 전체 WCF 런타임과 모든 것을 돌이 키기 때문에 가능하다면 모든 초기화 작업을 수행하기를 원합니다.

마크