2011-08-08 3 views
8

내 문제는 How to receive message from a private workgroup queue과 비슷합니다 (기본적으로 동일한 코드를 사용하고 있습니다).MSMQ 문제 원격 개인 큐 읽기 (다시)

내가 queue.send()와 큐를 사용하여 데이터를 읽기/

var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue"); 

그리고 서면으로 원격 시스템에서 큐 열기

MessageQueue.Create(@".\Private$\MyNewPrivateQueue"); 

사용하여 호스트 시스템에서 큐를 만드는 오전. 수신()

나는 두 가지 시스템을 실험하고있다.

  1. 윈도우 7 홈 프리미엄 x64
  2. 윈도우 XP SP3

나는 W7 시스템의 개인 큐를 만든 다음 쓰기 참조에 따라 (XP의 시스템에서 큐를 읽으려고 질문) 읽기 작업에서 "메시지 대기열 서비스를 사용할 수 없음"예외로 인해 실패합니다.

그러나 시스템을 리버스 (예 : XP 시스템에서 대기열을 만들고 W7 시스템에서 읽고 쓰고 동일한 코드를 사용)하면 은 예상대로으로 작동합니다.

나는 통해 일한 :

  1. Reading Messages from Remote Queues
  2. Understanding how MSMQ security blocks RPC traffic
  3. Getting MSMQ messages out of Windows Server 2008 remotely
  4. Clear the way - MSMQ coming through
  5. MSMQ 3.0 too secure for you?

나는 또한 시도 W7 및 XP 방화벽을 끄고 모든 사람과 그의 개에게 대기열에 대한 모든 권한을 부여합니다.

대기열 호스트로 XP에서는 작동하지만 W7에서는 호스트가 아닌 보안 문제 및 코드 문제라고 가정합니다. 하지만 제 인생에서 W7의 어느 부분이 막혔는지 알 수 없습니다.

EDIT 8/9

OK ..

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC 

나 원격 개인 큐로부터 메시지를을 읽을 수 첨가. 그러나이 가능한 개인 큐를 열거 할

GetPrivateQueueByMachine(String machineName) 

의 사용을 허용하지 않는 것 같습니다. 이것에 대한 아이디어가 있습니까?

답변

6

OK .. 분명히 내가 읽어야 할 모든 것을 읽지는 않았다.,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC 

과 1

나는 W7 서버에 이런 짓을하면이 값을 설정합니다

MSMQ 4.0 - what's new in Computer Management?

내가 새 레지스트리 키를 추가하는 데 필요한 : 대답은 있었다 그럼 난 XP에서 컴퓨터에서 대기열을 읽을 수 있습니다.

누군가가 대기열에 쓸 수있는 이상한 생각이 나는 유일한 사람인 줄 알았지 만 대기열에서 읽도록 설정해야만 했나요? 너무 기괴합니다.

+3

아니요, 기괴하지 않습니다. 대기열로 보내고받는 것은 완전히 다른 네트워크 프로토콜을 사용합니다. MSMQ (및 HTTP) 프로토콜은 메시지를 보내거나 푸시하기위한 프로토콜입니다. RPC 프로토콜은 메시지 수신/수신을위한 프로토콜입니다. 이 프로토콜은 실제로 완전히 다른 문제가있는 분필과 치즈입니다. –

+1

@ 존. 좋아, 내가 볼 수있는 두 가지 다른 프로토콜의 사용은 읽기/쓰기에 대한 다른 행동을 의미하므로 내가 상상했던 것보다 기괴하지 않다. 반면에 완전히 다른 두 개의 프로토콜 ;-) –

+0

예 :-) MSMQ는 1990 년대 중반에 인터넷이 시작되기 전에 corproate LAN의 푸시 기술로 설계되었습니다. RPC는 이미 사용할 수 있으므로 바퀴를 다시 만들 필요가 없습니다. MSMQ가 지난 5 ~ 10 년 동안 설계 되었다면 매우 다를 것입니다. –