我正在使用 WCF (C#) 在工作组模式下在 Windows Server 2003 下从私有 MSMQ 队列发送/接收消息。
客户端 WCF/服务 WCF 和 MSMQ 在同一台计算机上。
有一个客户端将消息发送到私有队列,效果很好。有一个服务从同一个私有队列接收消息,但该服务似乎永远不会被 MSMQ 调用。(没有错误发生)
消息在队列中堆积,但没有任何内容被拉出。在另一台计算机(域模式而不是工作组模式)上,消息被完美地发送和接收。
导致 MSMQ 从不调用我的服务的工作组模式有什么问题?
之后,我编写了一个 C# 测试,总是在同一台计算机上,但这次我创建了 MessageQueue 并以这种方式订阅 ReceiveCompleted 事件:
MessageQueue MQueue = new MessageQueue(".\\private$\\nameofmyqueue");
MQueue.MessageReadPropertyFilter.SetAll();
MQueue.ReceiveCompleted += MessageEventHandler;
Message Msg = MQueue.Receive();
现在有新消息时,我会从 MSMQ 队列接收事件。
我认为我的服务配置(WFC 配置)或命名空间保留存在问题。