문제

현재 서비스를 위해 COM DLL을 사용하는 WCF 서비스가 있습니다. COM 객체는 한 번만로드되어 싱글 톤을 통해 저장됩니다. 문제는 COM 객체를로드하는 데 첫 번째 실행이 약 1 분이 걸린다는 것입니다. WCF 서비스는 Windows 서비스를 통해 호스팅됩니다. Windows 서비스의 시작을 통해 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 Service 시작의 시작에 싱글 톤의로드를 추가하려고하면 항상 실패합니다. 이게 ObjectConn 인스턴스에 스타트 업 루틴을 추가하는 적절한 방법인지 묻고 싶습니다. 싱글 톤로드를 MyService Apprutor에 배치하려고했지만 첫 번째 서비스 호출을 어색하게 만드는 웹 서비스 작업/메소드에 대한 첫 번째 호출만으로 호출됩니다.

의존성에 대해 읽었지만 COM 객체 소스를 한 번만로드하고 싶기 때문에 추가 된 동작이 적용되지 않는다고 생각합니다.

도움이 되었습니까?

해결책

당신은 아마 이것을 할 수 있습니다 - 그러나 나는 전에 그것을하는 것이 좋습니다.

host.Open()

전화. 이 호출은 전체 WCF 런타임과 모든 것을 돌리며 가능한 경우 그 전에 모든 초기화 작업을 수행하는 것이 좋습니다.

마크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top