WCF MSMQ消息已多次处理

| 我有一个正在通过MSMQ与之通信的WCF程序。 由于某种原因,没有明显的原因,多次处理了多个消息。没有引发任何错误,我已经确认该应用程序可以在没有引发任何错误的情况下进入和退出operationBehaivior。 例如,我将通过MSMQ发送1条消息,应用将接收该消息并成功对其进行处理,然后出于某种原因再次对其进行处理(有时会多次处理,有时不会进行重新处理) 以下是定义的相关行为和合同:
[ServiceContract]
public interface IApp
{

    [OperationContract(IsOneWay = true)]
    void ProcessMessage(List<AppData> appInfo);

}

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class ProcessInfo : IApp
{
    [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
    public void ProcessMessage(List<AppData> appInfo)
    {
      try
      {
           app logic
      }
      catch(Exception e)
      {
      }



    }
似乎经过多次处理的MSMQ消息的中止计数> 0或被放入重试队列中,但是,我从未收到有关为什么发生这种情况的错误。 关于为什么会发生这种情况的任何想法将不胜感激。     
已邀请:
您发现问题是超出了绑定超时,并询问为什么在客户端或服务代码中看不到任何异常。这是它的解释: 从客户端的角度来看,消息是一种方式,已成功传递到队列。从客户的角度来看,这就是最重要的。客户端将永远不会看到在服务器端处理消息时出现异常。 在服务方面,您不会在代码中看到异常,因为超时是在WCF运行时级别处理的。您的代码正常完成了执行(WCF不会中止正在执行的线程或其他任何操作),但是就WCF运行时而言,它花费的时间太长,因此需要再次重试消息传递。就是说,您绝对可以在事件日志中看到错误,如果启用了,则可以在服务跟踪日志中看到表明发生超时的错误。     

要回复问题请先登录注册