I know that when I try to create new MessageQueue
, system throws InvalidOperationException
if the Message Queuing is not enabled.
But how to know programmatically whether Message Queueing is enabled on the machine or not? I am using C# 2.0 & C# 4.0 in two different code bases.
You can use the System.ServiceProcess for this one, but first you need to add reference to your project the Service.ServiceProcess
, and you can retrieve all the services and get their status like this:
List<ServiceController> services = ServiceController.GetServices().ToList();
ServiceController msQue = services.Find(o => o.ServiceName == "MSMQ");
if (msQue != null) {
if (msQue.Status == ServiceControllerStatus.Running) {
// It is running.
}
} else { // Not installed? }
Answering little late, but if you are scripting fan Powershell is at your help. To get status update on numbers, use following script:
$queues = Get-WmiObject Win32_PerfFormattedData_msmq_MSMQQueue
$queues | ft -property Name,MessagesInQueue
This will show you name of queue and number of items in each queue. Hope this will help someone someday. :D
How to tell if MSMQ is installed
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With