파트 관리 (C#) 및 비 관리 코드 (C/C++ 라이브러리)를 사용하는 .NET 기반 Windows 서비스를 개발했습니다.관리되는 응용 프로그램을 실행할 때 .NET에서 수행하는 시간이 가장 많이 소요되는 검사는 무엇입니까?
일부 도메인 환경 (예 : abc.com 도메인의 Win 2k3 32 비트 서버)에서는 서비스가 시작될 때까지 (특히 OS 다시 시작시) 30 초 이상 걸리는 경우가 있으므로 서비스를 시작하지 못할 수 있습니다. 나는 그것이 기업 수준의 보안과 관련이 있다고 의심하지만 확실하지는 않습니다.
http://msdn.microsoft.com/en-us/library/aa720255%28VS.71%29.aspx
내가 성공하지 않고 다음 시도했다 : - servicebase 구현에서 가능한 한 사용 지침을 이동하여 지연로드의 참조 - 을 (특히 XML 네임 스페이스 로딩 지연의 원인을 알고) - 지연로드 및 log4net 구성 - 작업자 스레드 의 시작을 지연 - - NGEN 를 사용하여 코드를 사전 컴파일은 바이너리에게 를 unsign/기호 - - 안에 설정 + 매니페스트 decencies 추가/제거 구성 설정을 사용 (이됩니다 많은 설정과 모든 범위의 범위 응용 프로그램으로 설정 됨) - GAC에 대한 모든 종속성 추가
Main 메서드가 구현 된 클래스에 대한 보안 요구 사항을 아직 추가하지 않았습니다. 자동 생성 된 코드를 검사 한 후, 설정 클래스가 singletone이고 호출시 인스턴스를 가져 오기 때문에 자신의 구성 로더를 구현하지 않았습니다.
log4net 종속성을 완전히 제거하여 작동하지만이 옵션이 아닙니다.
네트워크 카드가 비활성화되면 즉시 서비스가 시작됩니다.
주 코드에서 모든 코드를 이동할 수 있습니까? –
log4net 로그의 대상은 무엇입니까? 다른 서비스 (예 : SQL Server)에 종속 될 수 있습니까? 그렇다면 물론 다른 서비스가 시작될 때까지 서비스가 시작되지 않도록 할 수 있습니다. – Jay