blogs.msdn.com/b/johnbreakwell/archive/2008/02/12/...
о, моя проблема похожа наКак получить сообщение из личной очереди рабочей группы (и я в основном использую тот же код).
Я создаю очередь на главном компьютере, используя
MessageQueue.Create(@".\Private$\MyNewPrivateQueue");
Открытие очереди на удаленной машине с помощью
var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue");
И запись / чтение данных с использованием queue.send () и queue.Receive ()
У меня есть две системы, с которыми я экспериментирую.
Windows 7 Home Premium x64Windows XP SP3Когда я создаю личную очередь в системе W7 и пытаюсь записать, а затем прочитать очередь из системы XP (согласно указанному вопросу), происходит сбой с исключением «Служба очереди сообщений недоступна» в действии чтения.
Однако, когда я переворачиваю системы (создаю очередь в системе XP и записываю / читаю из системы W7, используя тот же код), онаработает как и ожидалось.
Я работал через:
Чтение сообщений из удаленных очередейПонимание того, как безопасность MSMQ блокирует трафик RPCУдаленное получение сообщений MSMQ из Windows Server 2008Очистить путь - MSMQ идет черезMSMQ 3.0 слишком безопасен для вас?Я также попытался отключить брандмауэры W7 и XP и дал каждому человеку и его собаке полные права доступа к самим очередям, но безрезультатно.
Учитывая, что он работает с XP в качестве хоста очереди, но не с W7 в качестве хоста, я предполагаю, что это проблема безопасности, а не кода. Но для жизни я не могу видеть, где в W7 блокировка.
РЕДАКТИРОВАТЬ 8/9
Хорошо .. добавление
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC
Позволил мне прочитатьСообщения из удаленной приватной очереди. Однако это, похоже, не позволяет использовать
GetPrivateQueueByMachine(String machineName)
перечислить доступные частные очереди. Так есть идеи для этого?