2012-01-17 3 views
7

원격 큐로 메시지를 보내려고합니다. 내 프로세스가 실패하지는 않지만 여전히 원격 대기열에 메시지가 표시되지 않습니까? 메시지를 처리 ​​할 수 ​​없다면 실패 할 것이라고 생각합니까?MSMQ 원격 큐로 메시지 보내기

내 로컬 컴퓨터에서 원격 대기열이 나가는 대기열에 나열되지만 거기에 메시지가 표시되지 않습니다. 여기에서 무지한 점과 모든 예는 내가하고있는 일 (또는 그렇게 가정)이 옳았다는 것을 보여줍니다. (테스트를위한 간단한)

코드 :

using (var transaction = new TransactionScope()) 
    { 
     using (var queue = new MessageQueue(@"FormatName:DIRECT=OS:mymachine\MyQueueQueue")) 
     { 
      XDocument xdoc = XDocument.Parse("<root/>"); 

       var message = new Message(xdoc.ToString()); 
       queue.Send(message, MessageQueueTransactionType.Single); 
     } 

     transaction.Complete(); 
    } 

    Console.Read(); 
} 

내가 뭘 잘못? 이상한 ... 오류는 없지만 어디에도 메시지가 표시되지 않습니다. 쓰기는 로컬 큐에 작동합니다.

답변

12

로컬 컴퓨터에 표시되는 큐는 MSMQ가 컴퓨터에서 원격 컴퓨터로 메시지를 보내는 방법입니다. 메시지가 없으면 걱정하지 마십시오. 메시지가있는 경우 원격 대기열이 어떤 이유로 사용할 수 없음을 나타냅니다.

가능성있는 사용 권한 문제 일 수 있습니다. 원격 대기열에 대한 전송 권한을 확인하십시오. 통화가 도메인 간으로 연결되면 사용 권한에 ANONYMOUS LOGON을 추가해야합니다.

또한 MSMQ 이벤트 로그를 사용하도록 설정하십시오 (서버 2008 이상을 실행중인 경우).

UPDATE 공용 큐 주소를 호출하는 것 같습니다

. 개인 대기열을 사용해야합니다.

FORMATNAME : DIRECT = OS :하여 mymachine \ PRIVATE $의 \의 MyQueueQueue ALSO

: 주소는 개인 $ 지시어를 제외하고 동일 대기열 이름 myQueueQueue은 큐 주소처럼?

+0

감사합니다. @hugh .... 이벤트 로그를 살펴 보았습니다 ... 지금까지 아무 것도 보지 못했습니다. 사용 권한을 살펴볼 것입니다 – scarpacci

+0

그 큐에 보내기/받기 perms되었습니다 감사합니다! 나는 그것을 매우 감사한다. – scarpacci

+0

내 대답을 업데이트했습니다 –

관련 문제