내 프로그램이 .NET의 MessageQueue 클래스를 사용하여 MSMQ에서 성공적으로 읽을 수 있습니다. 대기열은 사용자가 구성 할 수 있으며 때로는 로컬 시스템에 있고, 때로는 원격 시스템에 있습니다. 사용자는 이름이나 IP 주소 및 대기열 이름 (그리고 "개인"대기열 만 사용)으로 원격 시스템을 지정할 수 있습니다.다른 컴퓨터의 MSMQ 수를 어떻게 읽을 수 있습니까?
대기열에 남아있는 메시지의 수를 사용자에게 표시하고 싶지만이를 수행 할 방법을 찾지 못했습니다. MessageQueue 클래스에는 Count (또는 이와 유사한) 속성이 없기 때문에 쉽게 알 수 있습니다.
PerformanceCounter 및 PerformanceCounterCategory 클래스를 사용하여 카운트를 얻을 수 있었지만 - 로컬 컴퓨터에서만이 기능이 제대로 작동하는 것 같습니다. (물론이 클래스를 올바르게 사용하고 있는지는 확실하지 않지만).
제 질문은 원격 컴퓨터의 MSMQ에서 Count (메시지 수)를 읽는 방법입니다.
보이는 것처럼 보입니다. 나는 그것을 시험해야 할 것이다. –
이 페이지에서 몇 가지 메서드를 시도했지만 System.Messaging.MessageQueueException을 System.Messaging.MessageQueueErrorCode.RemoteMachineNotAvailable (소켓 개체가 실제로 개체를 읽을 수있는 것처럼 보였음)을 계속 가져 왔습니다. 해당 페이지의 메서드는 로컬 큐 (이미 작동하고있는)를 읽는 것으로 간주됩니다. 원격 큐의 수를 읽는 기술을 찾으려고합니다. –
흠, 그게 너에게 잘 어울리지 않아서 미안해. 이 페이지에서 얻은 요점은이 방법이 모든 메시지를 들여다 보면서 커서를 사용하여 큐의 메시지를 계산한다는 것입니다. 그것은 많은 불필요한 독서를하고 있었기 때문에 이상적인 해결책처럼 보이지는 않았지만 잠재적 인 해결책처럼 보였습니다. 언급했듯이 대기열에서 읽는 방법은 원격으로 작동하지 않을 수도 있습니다. –