参考文章:
https://www.cnblogs.com/xbding/p/5195749.html
https://www.cnblogs.com/sunqiliang/p/5919301.html
http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E8%AF%86%E5%BA%93/2779.shtml
先按照以上文章在服务器安装消息队列,并且写好以上代码,注意如果是远程访问需要初始化MessageQueue对象时指定相关的IP
MessageQueue textQuere = new MessageQueue(@"FormatName:Direct=TCP:IP地址private$消息队列名称");
注意事项:
-
服务器防火墙开放1801端口
-
如果是IDC的服务器,还需要把访问规则加上(同样也是打开端口)
-
将消息队列的写消息权限打开
-
测试结果如下,正常收到了消息:
-
消息的身份验证:
目前测试需要认证才能收到,如果没有认证是收不到发过来的消息。所以轻易不要设置此项。
-
消息的事务:
注意:如果生产者使用事务发送消息,消费端也要同样使用事务。创建消息队列也同样要设置为事务选项。如果生产都使用事务发送消息,而创建队列时没有设置事务选项,则消息队列是接收不到消息的(三者记得都要同步进行)
创建事务型的消息队列
-
消息的确认:
关于消息队列的确认机制研究还不是很深入,所以不进行讨论,这里有一篇文章可以参考:https://stackoverflow.com/questions/22985953/msmq-via-c-sharp-ack-that-message-received?r=SearchResults