Wie Sie wissen, programmgesteuert, ob die Message Queueing aktiviert ist, auf der Maschine oder nicht?
Ich weiß, dass wenn ich versuche, neues zu schaffen MessageQueue
system wirft InvalidOperationException
wenn der Message Queuing-ist nicht aktiviert.
Aber wie Sie wissen, programmatisch, ob die Message Queueing aktiviert ist, auf der Maschine oder nicht?
Ich bin mit C# 2.0 & C# 4.0 in zwei unterschiedlichen code-Basen.
- Sie tatsächlich Ihre Frage beantwortet, nur versuchen, diese try { //erstellen oder öffnen einer MessageQueue } catch (InvalidOperationException ) { // ist nicht aktiviert }
- Über Ausnahmen zu erkennen Zustand/information ist eine schlechte Praxis, es sei denn absolut notwendig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die System.ServiceProcess für diesen einen, aber zuerst müssen Sie auf Verweis hinzufügen, um Ihr Projekt der
Service.ServiceProcess
, und können Sie abrufen, alle services und Holen Sie sich Ihren status so:ServiceName
istMSMQ
auf Windows 7 & Windows XP zumindest.Beantwortung wenig spät, aber wenn Sie sind scripting-fan Powershell ist auf Ihre Hilfe.
Um ein status-update auf zahlen, verwenden Sie die folgenden Skripts:
Dies wird Ihnen zeigen, den Namen der Warteschlange und die Anzahl der Elemente in jeder Warteschlange. Hoffe das hilft jemandem eines Tages. 😀
Wie erkennen Sie, ob MSMQ installiert ist
Haben Sie beantwortet Ihre eigene Frage: versuchen Sie, erstellen Sie eine neue MessageQueue, und fangen InvalidOperationException.
Wenn Sie nicht bekommen, eine Ausnahme, MQ aktiviert ist; wenn Sie eine Ausnahme, es ist nicht aktiviert. (Sie kann über das MessageQueue-Instanz, wenn eines erstellt wurde, als Sie habe es nur verwendet für die Erkennung von Unterstützung)