2012-11-16 1 views
2

Delphi 2010에서 트랜잭션 대기열에서 XML 데이터를 읽는 응용 프로그램을 개발했습니다. 대기열이 로컬 또는 원격이고 두 경우 모두 사용 권한을 설정할 필요가없는 경우 제대로 작동합니다.메시지 큐에서 액세스가 거부되었습니다.

이제 해당 응용 프로그램을 Windows 서비스로 변환해야합니다. 동일한 응용 프로그램을 복사하여 서비스 코드에 붙여 넣었지만 대기열을 읽으려고하면 "액세스가 거부되었습니다"라는 오류가 발생합니다. 로컬 컴퓨터에서 테스트하고 있습니다.

일부 사람들은 권한 문제라고 말합니다. 같은 문제에 대한 몇 가지 게시물을 스택 오버플로에서 찾았지만 솔루션을 찾지 못했습니다.

아이디어가 있으십니까? Windows 7도 사용하고 있습니다.

+0

실제 코드를 표시하십시오. –

+0

레미 감사합니다. 내 문제가 해결되었습니다. 내 계정 이름과 암호를 사용하여 서비스에 로그온해야했습니다. – Nelson

답변

1

응용 프로그램을 로컬에서 실행하는 경우 Windows 로그온 자격 증명으로 응용 프로그램을 실행하고 있습니다. 기본적으로 서비스는 계정과 다른 권한을 가진 다른 사용자 계정으로 시작됩니다.

서비스 관리자 (start-> services.msc)를 불러오고 목록에서 서비스를 찾은 다음 마우스 오른쪽 단추로 속성을 선택하십시오. 그런 다음 로그온 탭을 선택하고 특정 계정 이름/암호로 변경하십시오. (계정 이름/암호를 사용하십시오.) 그런 다음 동일한 자격 증명을 사용하여 코드를 실행하므로 액세스 거부 오류가 사라집니다.

+0

효과가있었습니다! 내 계정 이름과 암호를 사용했는데 더 이상 "액세스 거부"오류가 발생하지 않았습니다. Darian, 정말 고마워. – Nelson

+0

@ 넬슨, 답변을 수락하는 것을 잊지 마세요! –