2009-04-23 9 views
25

XP 시스템에는 .net 서비스에 의해 생성 된 개인 메시지 큐가 있습니다. VB6 응용 프로그램에서이 개인 큐에 액세스하려고 할 때 "액세스가 거부되었습니다."오류가 계속 발생합니다. 보안 문제 인 것 같습니다. 관리자로도 로그온 한 경우에도 여전히 은 동일한 컴퓨터에서 생성 된 큐에 액세스 할 수 없습니다. 내가 고려해야 할 다른 것이 있습니까? 나는 .NET 서비스는 개인 큐의 사용 권한에서 "모두"그룹을 제거한 경우이 발생할 수 VB6개인 MSMQ에 액세스 할 수있는 권한이 없습니다.

Public msgQueue As MSMQQueue 

Private Sub OpenQueue() 

    Dim MQ As New MSMQQueueInfo 
     MQ .PathName = ".\Private$\incommingQueue" 

    Set msgQueue = MQ.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE) 

End Sub 
+0

대기열의 보안을 확인 했습니까? ACL은 대기열 등록 정보에 있으며 폴더 등록 정보와 유사합니다. –

+0

대기열의 등록 정보를 수정하려고하면 "액세스가 거부되었습니다"라는 동일한 메시지가 나타납니다. – Mez

답변

52

을 큐를 사용하는 방법에 대한

샘플. (incommingQueue -

  1. 대기열을 설명하는이 폴더에있는 파일을 찾기 폴더 C:\WINDOWS\system32\msmq\storage\lqs

  2. MSMQ를 서비스

  3. 열기를 중지 : 다음은이 문제를 해결하기 위해 취할 수있는 몇 가지 단계가 있습니다)

  4. 메모장을 사용하여 보안 권한이있는 다른 개인 큐의 lqs 파일을 엽니 다.

  5. 가 클립 보드에 Security=....

  6. 복사 전체 라인을 시작하는 파일에서 줄을 찾습니다 (당신이없는 경우 다른 개인 큐는 하나를 만들 수) (줄 바꿈에 대한 조심,이 줄은 것

  7. 열기 텍스트 편집기에서 문제 큐에 대한 LQS 파일이

  8. 가 클립 보드의 내용이 파일의 Security=... 라인을 덮어 쓰기) 아주 오래

  9. 저장 수정 된 LQS는 파일

  10. 시작 MSMQ 서비스

당신은 문제 큐는 이제 보안 설정 위의 6 단계에서 복사 한 큐와 동일한 권한을 가지고 있는지 찾아야한다.

+1

이것은 끔찍한 해킹처럼 들립니다. * 확실하게 * 아래 답변에서 설명한대로 대기열의 속성을 통해 수행 할 수 있습니다. https://stackoverflow.com/a/3138438/1158692 –

26

여기에 게시 된 솔루션은 약간의 해킹처럼 보입니다. 아마도 이것은 Windows XP에 필요합니다. 나는 Windows 7을 사용하여 비슷한 것을 만났고이를 해결하기 위해 다른 접근 방식을 사용했습니다.

상황 :

  • 프로그램은 로컬 시스템 계정에서 실행,
  • 프로그램은 Windows 서비스로 실행되는 개인 트랜잭션 큐를 생성 C# 코드로 구성되어 있습니다.
  • 서비스가 실행되면 로컬 시스템 계정을 소유자로 사용하여 개인 큐가 만들어집니다.
  • 관리자인데도 대기열의 메시지를 검사 할 수 없습니다.

    1. 실행 compmgmt.msc를
    2. 열기 '서비스 및 응용 프로그램'
    3. 열기 '메시지 큐'
    4. 열기 '개인 큐':

솔루션 (이 윈도우 7을위한)

  • 새로 만든 대기열을 마우스 오른쪽 단추로 클릭하십시오.
  • '등록 정보'를 클릭하십시오.
  • 는 '보안'탭
  • 클릭 '고급'
  • 이 '소유자'탭
  • 선택 '관리자'
  • 선택 '권한'탭
  • 클릭 '추가'
  • 유형을 선택을 선택 당신의 이름으로 '관리자')
  • 클릭 '이름 확인'
  • 클릭 'OK'
  • 클릭 'OK'
  • 는 이제 큐의 메시지에 액세스 할 수

  • 클릭 'OK'도 원하는 경우 큐를 제거하십시오.

  • +0

    이 방법이 Windows Server 2003에서 작동하는지 확인했습니다. 잘 했어. 그 다른 수정은 실제로 해킹처럼 보였습니다.이 작업은 훨씬 쉽게 수행 할 수 있습니다. – Jason

    +0

    15 단계와 16 단계 사이의 "모든 권한"확인란을 클릭해야했지만 그 외에도 Windows 7 컴퓨터에서 작동했으며 다른 솔루션보다 훨씬 적은 해킹이있었습니다. –

    +2

    큐에 대한 액세스가 거부되었으므로 Windows 서비스에서 큐를 생성 할 때 원래의 질문에서 설명한 것과 정확히 같은 상황입니다. – user379429

    관련 문제