我有一个使用wcf的netmsmqbinding的msmq应用程序。在默认配置中,在启用了Active Directory集成的情况下,一切工作正常。
但是,当我试图关闭安全性(使用netmsmqbinding的绑定配置)时,似乎收到了队列上的消息,即正在发布消息,因为我可以在队列的日志中看到它们,它们不在队列本身或死信队列中,但没有调用相应的wcf操作。我看不到任何异常或错误——这就像是在发送和读取消息,但被WCF悄悄地忽略了。
有什么想法吗?
更新:当客户端和服务器应用程序在同一主机上时,会发生这种情况。还要注意,消息实际上是从队列中删除的(即正在接收),但实际的服务操作不会被调用。我看到日志队列中的消息,而不是实际的队列。
更新2:队列是事务性的。
更新3:追踪并没有揭示太多。在“listen at net.msmq://address of the queue”活动中,我得到一个带有“socket connection was aborted”的通信异常。这可能是由于处理消息时出错、远程主机超过接收超时或基础网络资源问题造成的。本地套接字超时为“00:00:09.9930000”。
在“对未执行的操作执行流程操作”活动中,我得到一个InvalidOperationException,其中包含“在授权上下文中未指定任何自定义主体”。