MSMQ: C# MSMQ编程问题
现在想在局域网内用MSMQ通讯,计算机都在工作组内。请问在工作组内实现MSMQ通讯的步骤是什么?谢谢。
在常报的异常是:
对消息队列系统的访问被拒绝
队列路径名无效
远程计算机不可用
换下面这种方式表示地址也不行哦。
1.一种是以机器名(计算机名)的表示方法
FormatName:DIRECT=OS:计算机名\Private$\队列名称
比如: FormatName:DIRECT=OS:Server01\Private$\Demo
2.另一种是以IP地址的表示方法
FormatName:DIRECT=tcp:IP地址\Private$\队列名称
下面是我实现的代码,该代码在本机上实现收发消息都是正常的,缺不能实现2台机器间的通讯。
         private void FSend() //发送
         {
             string queuename = ".\\private$\\testQueue";//队列名称
             MessageQueue q;
             if (MessageQueue.Exists(queuename))
             {
                 q = new System.Messaging.MessageQueue(queuename);
             }
             else
             {
                 q = MessageQueue.Create(queuename);
                 q.SetPermissions("Everyone", MessageQueueAccessRights.FullControl);
             }
             System.Messaging.Message m = new System.Messaging.Message();
             m.Label = "MessageLabel gaga"; //描述消息的字串
               m.Body = "MessageBody gaga";   //消息的主体
             q.Send(m);                      //发送
             MessageBox.Show("发送成功");
         }
         private void Recevie() //接受
         {
             try
             {
                  //两种Path名都不行                //string queuename = "kjxin08\\private$\\testQueue";//队列名称
                 MessageQueue q = new MessageQueue(@"FormatName:DIRECT=tcp:192.168.150.34\Private$\testQueue");
                 //q.Formatter = new XmlMessageFormatter(new Type[] { typeof(aa) });
                 System.Messaging.Message m = q.Receive();
                 m.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                 label1.Text = m.Body.ToString();
                 MessageBox.Show("接受成功");
             }
             catch (MessageQueueException ex)
             {
                 MessageBox.Show(ex.Message);
             }
         }
哪位高手帮解决一下了。 THS
------解决方案--------------------http://hi.baidu.com/yaowangdexiaoniao/blog/item/d1c3b586b9503c3e67096e36.html
------解决方案--------------------
在计算机管理中
找到那个消息队列,右键点击,找到权限设置
一般是有2个角色,把那个 完全控制 打勾 就可以了
------解决方案--------------------
在计算机管理中
找到那个消息队列,右键点击,找到权限设置
一般是有2个角色,把那个 完全控制 打勾 就可以了
messageQueue.SetPermissions("ANONYMOUS LOGON", MessageQueueAccessRights.FullControl);
messageQueue.SetPermissions("administrator", MessageQueueAccessRights.FullControl);
请问针对不同的用户如何设置权限??不会就上面的语句吧????
如接受消息的计算机登录用户为 test
MSMQ服务器发送的消息只想 test 来接收
该如何设置呢??
THS