2011-08-08 18 views
8

Sorunum How to receive message from a private workgroup queue (ve temelde aynı kodu kullanarak) benzer.MSMQ Uzak özel sıraları okuma sorunu (tekrar)

ben queue.send() ve kuyruğu kullanarak veri okuma/

var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue"); 

Ve yazı uzaktan makineye kuyruğu Açılış

MessageQueue.Create(@".\Private$\MyNewPrivateQueue"); 

kullanarak ana makinede kuyruğu oluşturma. Al()

Denediğim iki sistem var.

  1. Windows 7 Home Premium x64
  2. Windows XP SP3

Ben W7 sistemde özel kuyruk oluşturmak ve sonra yazmak başvurulan uyarınca (XP sisteminden kuyruğu okumaya çalışırım soru) okuma eyleminde "Message Queue Service kullanılamıyor" istisnasıyla başarısız oluyor.

Ancak, sistemleri tersine döndürdüğümde (XP sistemindeki sırayı oluşturup, W7 sisteminden yazma/okuma ve aynı kodu kullanarak), , beklendiği gibi çalışır.

İçinden çalıştık:

  1. Reading Messages from Remote Queues
  2. Understanding how MSMQ security blocks RPC traffic
  3. Getting MSMQ messages out of Windows Server 2008 remotely
  4. Clear the way - MSMQ coming through
  5. MSMQ 3.0 too secure for you?

Ben de denedim W7 ve XP güvenlik duvarlarını kapatarak, her erkeğin ve köpeğinin kuyruğundaki tüm izinlerini kendilerine boş vermemeleri sağlandı.

Ana bilgisayar olarak W7 ile değil, ana bilgisayar olarak XP ile çalıştığı göz önüne alındığında, bir güvenlik sorunu olduğunu ve bir kod sorunu olmadığını varsayalım. Ama hayatım boyunca W7'de tıkanıklığın yerini göremiyorum.

DÜZENLEME 8/9

Tamam ..

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC 

beni uzak özel kuyruktan iletileri okumaya İzin ekledi. Ancak bu mevcut özel sıraları numaralandırılamıyor

GetPrivateQueueByMachine(String machineName) 

kullanımına izin vermiyor. Yani bunun için herhangi bir fikir?

cevap

6

Tamam .. Okumak için gereken tüm şeyleri okumadım.,

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC 

ile 1

Ben W7 sunucuda bunu bir kez değerini ayarlayın:

MSMQ 4.0 - what's new in Computer Management?

Ben yeni bir kayıt anahtarı eklemek için gerekli: cevabı oldu sonra XP makinesinden kuyruğu okuyabiliyordum.

Bunun, herkesin sıraya yazabileceği garip olduğunu düşünen tek kişi ben miyim, ama bunu sıradan okumalı mıyım? Bu çok tuhaf.

+3

Hayır, tuhaf değil. Bir sıraya gönderme ve alma, tamamen farklı ağ protokollerini kullanır. MSMQ (ve HTTP) protokolü/mesajları mesaj göndermek/göndermek içindir; RPC protokolü mesajları almak/çekmek içindir. Bu protokoller tamamen farklı sorunlu noktalara sahip gerçekten tebeşir ve peynirdir. –

+1

@John .. Tamam, okuma/yazma için farklı davranışlar anlamına gelen 2 farklı protokolün kullanımı göz önüne alındığında, hayal ettiğim kadar tuhaf değil. Öte yandan ... iki tamamen farklı protokoller ;-) –

+0

Evet :-) MSMQ, İnternet'in etrafından önce, corproate LAN'lar için bir itme teknolojisi olarak 1990'ların ortalarında tasarlandı. RPC zaten mevcuttu, böylece tekerleği yeniden icat etmeye gerek yoktu. MSMQ son 5-10 yılda tasarlandıysa, çok farklı olurdu. –