通过HTTP协议发送远程消息

MSMQ一般情况是通过tcp协议进行通讯,但如果遇到端口被禁用或防火墙,则通过HTTP协议发送消息是一个有效的解决办法。

通过HTTP协议发送消息到远程服务器

        public static void send2()

        {

            MessageQueue mq = new MessageQueue("FormatName:DIRECT=http://222.10.xx.xx/msmq/Private$/test");

            System.Messaging.Message msg = new System.Messaging.Message();

            msg.Body = "This is a test message! ->" + DateTime.Now.ToString();

            msg.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });

            mq.Send(msg);

        }

另:

服务器端必须在安装消息列队选项里添加"MSMQ HTTP支持", 通过HTTP协议发送远程消息需要IIS支持,因此必须启用IIS,且MSMQ默认将其安装在iis中的"默认站点",因此,如果停用或删除后,安装MSMQ HTTP支持时会发生错, 一般启用默认站点或重新安装IIS即可解决.