MSMQ消息队列,包括远程访问

参考文章:

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

 

posted @ 2020-07-31 11:01  无聊的蚂蚁  阅读(400)  评论(0编辑  收藏  举报