zoukankan      html  css  js  c++  java
  • MSMQ向远程服务器发送消息----错误总结

    一:路径错误(Path)错误

    如果向远程服务器发送消息,请使用格式名的形式,如:

    FormatName:Direct=TCP:121.0.0.1\private$\queue
    FormatName:Direct=OS:machinename\private$\queuename
    FormatName:DIRECT=http://222.10.xx.xx/msmq/Private$/test
    注意一:FontName是区分大小写的。如果表达式为“FORMATNAME:Dire......”,是无法工作的。
    但这种表达式不会返回任何错误。FontName好像是表达式里唯一区分大小写的部分。
    其他部分可以随意使用大小写,例如可以使用“DIRECT”。
    注意二:如果远程服务器为域中的服务器,则可使用Direct=OS:machinenamePrivate$...的形式发送消息。
    如果远程服务器为非域中的服务器,则可以使用TCP或http的形式发送。

    二:当服务器为非事务型队列的时候,如果你使用了事务发送,也会有错误

     环境说明:向远程服务器发送消息的时候,远程服务器使用的是http的格式,
    并且为非事务型,如:FormatName:DIRECT=http://222.10.xx.xx/msmq/Private$/test
    在我们的程序中启用了事务向服务器发送消息。结构程序没有任何错误,查看本机的传出队列,如下图:

    解决方法:我们队程序测试检查了很久,最终改为非事务发送方式可正常发送到服务器。

    注意:首先确定远程服务器的队列是事务型还是非事务型队列,然后发送程序一定要和远程队列匹配,不然消息无法送达,并且也没有任何的错误提示.

    三:向远程服务器发送消息,消息状态:正在等待连接

    网络情况是这样的,测试用的机子都安装了msmq组件,且都是在工作组模式下工作,两个机子同在一个局域网内,具有同样的网段。
    我往本机专用消息队列中收发消息都能成功,且往本机专用消息队列发送消息,另一台机器从我机子上的专用消息队列中也能正确接收消息,
    就是我往另一台机子的消息队列发送消息的时候,消息队列打开成功,消息发送也成功,就是消息全部堆积在本机的传出队列里,状态为正在等待连接。
    另一台机的专用消息队列里根本就没有我所发送的消息。
    并且把程序放到不同的机器上进行测试,一个是英文系统,一个是中文系统。向同一个远程服务器发送消息都正常,没有任何错误提示,但一直在本机的传出队列中。
    故障现象:
    服务器上MSMQ私有队列 可以接收 本服务器发送消息,无法接收远程计算机发送的消息

    服务器IP为10.9.3.2
    客户端发送的队列为 direct=tcp:10.9.3.2/$private/aasmansvc_input
    消息状态:正在等待连接
    客户端可以ping的通服务器IP
    部署程序的服务器和发送到远程的服务器的messagequeue 服务都已经启动

    英文操作系统发送消息队列:

    中文操作系统发送消息队列:

    两个发送消息的测试机都在本地的传出队列中显示“正在等待连接”状态。

    解决方法:

    1)首先考虑客户端和远程服务器端的防火墙是否允许通过。本人的测试机器都把防火墙关闭,依然有次问题。

    2)检查远程服务器的MSMQ设置会有影响,在远程服务器的消息队列上点击右键-->属性,如下图:

    如果你是英文版的系统,在如下图:

    打配置界面,点击“服务器安全”选项卡,如下图:

    勾选:启用安全的远程接收。因为我测试的发消息的服务器的系统都是2003的系统,并且:禁用未经身份验证的RPC调用。

    当然,我使用的是Win7系统作为远程队列发送消息的机器是2003的系统,使用上图的配置可以正常发送消息。反过来从win7向2003的系统中的消息队列发送消息,则如下设置也可以正常发送:

    另外,我在测试过程中,发送事务型消息,从win7到2003测试失败;从2003到win7测试失败。不知道为什么事务型消息始终没有测试通过,有可能是服务器配置,有可能是我的代码有问题。留着以后慢慢解决吧。

    如果你的远程队列是域中的服务器,会有点不一样。点击属性后的如下图:

    以上是本人在测试的过程中发现的没有报错信息的错误,记录下来以便于方便大家相互学习,如果以后再遇到其他问题,会补充在文章最后。

    个人原创,转载请注明出处。

  • 相关阅读:
    windows10下安装zookeeper kafka
    WisDom.Net 框架设计(八) 持久层
    WisDom.Net 框架设计(五) 权限设计
    WisDom.Net 框架设计(二) 服务总线
    业务安全篇-渗透中的表单测试
    【网摘】身在腾讯:浪潮之巅的惶惑与自救
    短链生成
    【读书笔记】——读书之前
    config 设置的两种方式
    ping通但是浏览器打不开网页解决
  • 原文地址:https://www.cnblogs.com/mq0036/p/3695038.html
Copyright © 2011-2022 走看看