代码之家  ›  专栏  ›  技术社区  ›  Kurt Schelfthout

WCF MSMQ:正在传递信件,但未调用服务?

  •  0
  • Kurt Schelfthout  · 技术社区  · 15 年前

    我有一个使用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,其中包含“在授权上下文中未指定任何自定义主体”。

    1 回复  |  直到 15 年前
        1
  •  1
  •   tomasr    15 年前

    您是否在客户端和服务配置中都关闭了安全性?如果它们不匹配,则服务可能会出错,并将消息放回队列中(特别是在处理事务队列时)。

    你试过启用吗 WCF tracing 在服务上看看有什么事吗?