msmq在Internet上访问的问题(只能发送,不能接收)

时间:2022-04-23
本文章向大家介绍msmq在Internet上访问的问题(只能发送,不能接收),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天测试了一下,message queue的private队列,在internet上可以发送,只要知道服务端的IP地址即可(当然服务端的队列权限要给足)

注意:队列path的引用必须参照下面的格式

FormatName:DIRECT=tcp:222.23.225.3Private$Demo

结论:

在客户端与服务端不在同一台机器上时,只能发送,不能接收(即不能远程接收internet的private队列)

远程不能接收的解决办法:

1。如果服务端有控制权限,可以在服务端布署一个程序,功能为:实时监听本机的消息队列,只要有消息,就将消息接收并插入数据库的一个临时表,然后在远程客户端通过数据库来访问临时表,这样变相的就得到了消息内容

2。如果服务端无控制权限,但有上传aspx权限,建一个aspx页面,功能为把服务端队列中的所有内容,接收转移到数据库的临时表,在远程客户端要得到消息队列前,用代码访问一下这个页面(比如发一个http访问请求),剩下的操作类似方案1(不足:如果没有及时访问这个页面,也就是说没有及时取走队列中的内容,队列有可能“暴满”)