次のコードを使用して、自分のマシンでローカル キューをクエリしようとしています。
var c = new MessageQueueCriteria();
c.MachineName = Environment.MachineName;
var queues = MessageQueue.GetMessageQueueEnumerator(c);
しかし、コードは 2 行目で次のような例外をスローします。
ワークグループ インストールのコンピューターは、この操作をサポートしていません。
スタック トレース: System.Messaging.MessageQueue.GetMachineId (文字列 machineName) で System.Messaging.MessageQueueCriteria.set_MachineName (文字列値)
MessageQueueErrorCode 列挙型は System.Messaging.MessageQueueErrorCode.UnsupportedOperation に設定されます。
奇妙なことに、私はワークグループではなくドメインにいるのです! および他のアプリケーション(QueueExplorer)はファイルを動作しているようです。どうすればそれを回避できますか?
更新: プロパティのセッターにあるこのコードを実行するとエラーが発生するようですが、修正方法はわかりません。
new MessageQueuePermission(MessageQueuePermissionAccess.Browse, "*").Demand();