WCF和MsmqBinding到远程专用队列

时间:2011-09-05 15:32:44

标签: wcf msmq netmsmqbinding

我们有一个使用MsmqBinding和WAS的WCF日志服务。问题是我尝试从远程计算机使用它,并且该消息似乎永远不会到达目标队列。以下是事实:

  1. 服务器配置
    • 列表项
    • 目标计算机名称:logserver.domain.ext
    • 目标队列:private $ / logservice.svc(已启用日记功能)
    • 队列安全:所有人:完全控制,网络服务:完全控制
    • IgnoreOSNameValidation注册表项:set
  2. 客户端配置
    • 客户端端点地址:logserver.domain.ext / private / logservice.svc
  3. 观察到的行为
    • 输出队列创建良好且状态为Connected,0消息为wainting
    • 如果我暂停输出队列,我会看到消息出现,然后在恢复队列
    • 时消失
    • 远程队列或日记
    • 中无法看到任何消息
  4. 值得的是:

    var queue = new MessageQueue(@"FormatName:DIRECT=OS:logserver.domain.ext\private$\logservice.svc");
    queue.Send("hello");
    

    有效!

2 个答案:

答案 0 :(得分:5)

您没有提及ANONYMOUS LOGON帐户的权限。如果未在绑定上明确使用Windows安全性,则此帐户将发生远程专用队列访问。

答案 1 :(得分:0)

我遇到了同样的问题,事实证明问题出在分布式事务处理协调器配置上。 This MSDN document帮助我解决了问题。