2015-02-06 1 views
0

배치 파일을 사용하여 COM 인터페이스에 액세스하는 jar 파일을 실행 중입니다. 배치 파일을 사용하여 항아리를 직접 실행할 때 제대로 작동합니다. 그러나 NSSM을 사용하여 배치 파일을 사용하여 서비스를 설정하면 해당 COM 인터페이스에서 함수를 호출 할 수 없습니다. 항아리는 서비스를 시작할 때 여전히로드되고 COM 인터페이스를 호출하는 DLL을로드하는 것을 포함하여 다른 작업을 수행합니다. 그러나 실제 COM 호출이 이루어지면 항아리는 정지합니다. 그 이유는 무엇입니까? 사용 권한 문제 일 수 있습니까? 이 서비스는 관리자 계정으로 생성되었으며 동일한 계정으로도 실행됩니다.NSSM을 사용하여 Java 서비스를 만들면 COM 인터페이스에 액세스 할 때 문제가 발생합니다.

감사합니다.

+0

Windows 서비스로 실행할 때 특정 제한 사항이 있습니다. 첫 번째로 UI가 표시됩니다. UI를 표시하면 서비스가 중단됩니다. 디버거를 서비스에 연결하고 COM 객체에 중단 점을 설정하지 않는 이유는 무엇입니까? Visual Studio가 있으면 디버깅 할 때 사용하십시오. 그렇지 않은 경우에는 WinDbg 또는 Visual Studio의 커뮤니티 버전을 다운로드하여 디버깅 할 수 있습니다. –

+0

@JoeWillcoxson 여기 UI가 없습니다. 내 항아리에 의해로드되는 DLL에 관해서는, 나는 그것에 대한 소스가 없습니다. Visual Studio를 통해 디버깅하고 디버깅 할 수 있는지 확인합니다. 그러나 내가 그것을 얻을 수 없다면, 나 자신을 쓰지 않았으므로, 나는 윈도우 서비스가 할 수있는 것에 제한이 있는지 궁금해하고 있었다. – highflyer

답변

0

동일한 자격 증명으로 실행하더라도 응용 프로그램과 COM 서버는 다른 세션에서 실행되고있을 가능성이 큽니다. launching the the COM server in Session 0을 시도해보고 도움이되는지 확인하십시오.

관련 문제