Is there is any option to remove a message from MSMQ after it has been read?
Like, a receive + delete can run as atomic operation?
Is there is any option to remove a message from MSMQ after it has been read?
Like, a receive + delete can run as atomic operation?
It sounds like you want to peek at the next message and then receive it after you're finished processing.
Message message = Queue.Peek(); Queue.ReceiveById(message.Id);
Are you referring to the difference between Receive and Peek in MSMQ?
IMO the simplest mechanism to ensure atomic operations is to place the queue operations within a TransactionScope. This can be done with WCF like so.