Ошибка чтения MSMQ (доступ запрещен) - PullRequest
1 голос
/ 27 октября 2011

Я создаю очередь на локальном компьютере в каком-то другом процессе следующим образом:

MessageQueue.Create(@".\private$\sampleQueue");

И в процессе чтения я присоединяюсь к нему следующим образом:

var queue = new MessageQueue(@".\private$\sampleQueue");

КогдаЯ пытаюсь сделать queue.Peek(), я получаю исключение отказа в доступе.Я не в домене, это просто мой локальный компьютер рабочей группы.Есть идеи?

Ответы [ 3 ]

3 голосов
/ 27 октября 2011

MSMQ для своей работы использует разные протоколы:

  • Для отправки информации (отправки сообщений) используется протокол MSMQ .
  • Получение информации (получение сообщений, получение свойств и т. Д.) С использованием протокола RPC .

Если это не простая проблема с разрешениями (что весьма вероятночтобы быть) тогда вам нужно это сообщение в блоге:

Понимание того, как MSMQ безопасности блокирует RPC-трафик http://blogs.msdn.com/b/johnbreakwell/archive/2010/03/24/understanding-how-msmq-security-blocks-rpc-traffic.aspx

Приветствия
Джон

2 голосов
/ 27 октября 2011

Учетные данные, используемые процессом, который создает очередь, должны отличаться от учетных данных процесса, используемого для чтения очереди.Если это так, то вам нужно специально предоставить необходимые разрешения на чтение в очереди после ее создания.

2 голосов
/ 27 октября 2011

Если вы щелкнете по очереди в разделе «Управление компьютером» и выберите свойства, у вас есть соответствующие разрешения на вкладке «Безопасность»?

...