У меня есть программа WCF, с которой обмениваются данными через MSMQ.
По некоторым причинам несколько сообщений обрабатываются несколько раз без видимой причины. Не выдается никаких ошибок, и я подтвердил, что приложение входит и выходит из операции Behaivior без каких-либо ошибок.
Например, я отправлю 1 сообщение через MSMQ, приложение получит его и успешно обработает, а затем по какой-то причине повторно обработает его (иногда несколько раз, иногда без обработки)
Вот соответствующие поведение и определяемые контракты:
[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 или помещаются в очередь повторов, однако я никогда не получаю сообщение об ошибке, почему это происходит.
Любая идея о том, почему это произойдет, будет высоко оценена.