2017-05-22 6 views
0

FileWatcher 클래스를 사용하여 Windows 서비스를 구축했습니다. 폴더에서 들어오는 파일을 감지하여 새 위치로 이동해야합니다.Windows 서비스가 예상대로 작동하지 않습니다. - C#

내 코드가 콘솔 응용 프로그램으로 실행 중이지만 Windows 서비스로 작동하지 않습니다. 파일은 원본 폴더에만 있습니다. 그들은 목적지로 이동하지 않습니다. 나는 LOCAL SYSTEM 계정에서 실행중인 폴더와 서비스에 대한 모든 권한을 부여 받았습니다. 오류를 지적하십시오. 미리 감사드립니다.

+0

작동하지 않는 기능은 무엇입니까? Windows 서비스를 디버그하려고 했습니까? 잘 모르는 것에 대한 자세한 내용을 입력하십시오. –

+3

C : \ Users \ ADMIN 액세스 권한이 충분하지 않습니까? – duDE

+0

파리가 대상으로 이동하지 않습니다. 파일은 소스 폴더 – METALHEAD

답변

0

Windows 서비스는 기본적으로 LocalSystem 계정으로 실행됩니다 (다른 계정을 설치할 때 지정하지 않은 경우). 이 계정에 두 폴더 모두에 대한 액세스 권한을 부여해야합니다.

+0

안녕하세요. 로컬 시스템에서 Windows 서비스를 실행 중이었고 전체 액세스 권한도 폴더에 부여되었습니다. – METALHEAD

0

는 사용자 이름과 암호를 사용하여 서비스를 만들려면 다음 명령을 사용하여

sc create "ServiceName" binPath= "G:\services\service.exe" DisplayName= "ServiceName" start= "auto" obj= "username" password= "password" 

Repace : ServiceName은, exe 파일 위치, 표시 이름, 사용자 이름과 암호를 입력합니다.

+0

안녕하세요. 의견을 보내 주셔서 감사합니다. 위의 프로그램이 UserID와 Password없이 실행하는 방법이 있습니까? – METALHEAD

+0

폴더 위치가 관리 사용자의 개인 폴더 위치이기 때문에이 시나리오에서는 파일에 액세스 할 수있는 충분한 권한이 있어야합니다. 파일 위치를 일반 드라이브 (C 드라이브 제외)로 이동하거나 관리자 사용자 이름과 암호를 사용할 수 있습니다. –

+0

콘솔 앱으로 실행하면 사용자 이름을 사용하여 파일에 액세스하므로 그 시점에 작동합니다. –