一、引言
按照专用队列解释: MachineName\Private$\QueueName,只针对于本机的程序才可以调用的队列,有些情况下为了安全起见定义为私有队列。所以刚开始的时候认为,要想访问远程消息队列,只能使用公共队列。但是后来发现,公共队列依赖Domain Controller(域控),在实际部署的时候,要求使用消息队列的应用一定要在某个域中,有些太苛刻!后来发现,私有队列也是可以远程访问的。(很困惑为什么私有队列只能本地访问,这句话,到处都能看到?!)
二、工作组下的本地C/S
2.1、项目建立
新建4个项目:
2.2、项目代码
2.2.1、Model项目
/// <summary> /// 消息队列实体 /// </summary> [Serializable] public class MqMessage { /// <summary> /// 对应Message的Label /// </summary> public string Label { get; set; } /// <summary> /// 对应Message的Body,CommandType为操作类型,List<string>为操作列表。 /// </summary> public Dictionary<CommandType, List<string>> Body { get; set; } = new Dictionary<CommandType, List<string>>(); /// <summary> /// 无参构造函数 /// </summary> public MqMessage() { } /// <summary> /// 有参构造函数 /// </summary> /// <param name="label"></param> /// <param name="body"></param> public MqMessage(string label, Dictionary<CommandType, List<string>> body) { Label = label; Body = body; } } /// <summary> /// 操作类型 /// </summary> public enum CommandType { Create = 1, //创建 Update = 2, //更新 Delete = 3 //删除 }