C:\ProgramData
에 로그 (NLog)를 기록하는 C#을 사용하여 Windows 서비스를 만들었습니다.
(위 코드를 사용하여) 내 Windows 7에서 서비스를 디버깅 할 때 로그 파일이 올바르게 작성되고 로그 레코드가 올바르게 기록됩니다. 그러나 Windows 서버 2008 (x86)에서 실행되는 서버에 서비스를 설치하면 로그 파일이 생성되지 않습니다. 또한 C:\Windows\System32\
, 아무것도 체크하지 않았습니다.로그 서비스에 기록 할 Windows 서비스 권한
인증 문제로 의심되는데 내 서비스가 어떤 권리를 사용하는지 어떻게 알 수 있습니까?
PS : 관리자 권한으로 명령 줄 C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\PathToMyService\MyService.exe
을 사용하여 서비스를 설치했습니다.
권한은 서비스를 설치하는 데 사용 된 ID가 아닌 서비스가 실행중인 모든 ID입니다. 자세한 내용은 여기를 참조하십시오 : http://stackoverflow.com/questions/858597/why-wont-my-windows-service-write-to-my-log-file –
로그를 작성하는 데 C : \ windows \ system32를 사용하면 안됩니다. 파일을. 이것은 중요한 운영 체제 디렉토리입니다. 또한 C : \ ProgramData는 응용 프로그램 바이너리가 상주하므로 로그 파일로 사용해서는 안됩니다. C : \ AppData \ local \ ... 또는 Windows 2008 서버의 Windows 이벤트 로그에 응용 프로그램 서비스의 로그 파일을 작성해야합니다. 이 방법을 사용하면 권한이 문제가되지 않으며 우수 사례가됩니다. –