C# 如何从专用工作组队列接收消息

C# 如何从专用工作组队列接收消息,c#,msmq,C#,Msmq,我在远程机器上有一个私有队列,每个人和匿名登录者都可以完全访问该队列。以下代码在尝试接收时产生错误: var qpath = @"FormatName:DIRECT=TCP:xx.xx.xx.xx\PRIVATE$\QueueName"; var q = new MessageQueue(qpath); var msg = new Message(); msg.AttachSenderId = false; msg.Recoverable = true; msg.Body

我在远程机器上有一个私有队列,每个人和匿名登录者都可以完全访问该队列。以下代码在尝试接收时产生错误:

var qpath = @"FormatName:DIRECT=TCP:xx.xx.xx.xx\PRIVATE$\QueueName";
var q = new MessageQueue(qpath);            
var msg = new Message();
msg.AttachSenderId = false;
msg.Recoverable = true;
msg.Body = "hello";
q.Send(msg); // <-- this works!
var recMsg = q.Receive(TimeSpan.Zero);  // <-- this breaks! :|
var qpath=@“FormatName:DIRECT=TCP:xx.xx.xx.xx\PRIVATE$\QueueName”;
var q=新消息队列(qpath);
var msg=新消息();
msg.AttachSenderId=false;
msg.Recoverable=true;
msg.Body=“你好”;

q、 发送(msg);// 如果远程计算机是其他域的一部分,则:

在跨林计算机上运行的MSMQ 3.0应用程序(在非受信任域中运行该系列的成员)将使用安全的远程读取API。默认情况下,承载包含要读取消息的队列的MSMQ 3.0服务器要求发出读取请求的其他域计算机建立加密通道,但无法在不受信任的域之间建立此类通道。因此,来自跨林计算机的远程读取请求将被拒绝。要修改此默认行为并允许消息队列服务器接受来自未建立加密通道的域计算机的请求,请添加

HKLM\SOFTWARE\Microsoft
\MSMQ\Parameters\Security\NewRemoteReadServerAllowOneSecurityClient

注册表项(DWORD)并将其设置为1


这是表格:。

谢谢。这使我走上了正确的道路。这是一个权限问题,当它在2008服务器上运行时,我可以通过GUI界面更改它。