If using MSMQ 3.0, or 4.0:
I fully understand that the following is not a common, or "correct" way to use a queue, but the point is solving a specific issue immediately.
Is it possible to perform a read from a remote queue and a write to the same remote queue in a same transaction? The application performing this being the sole writer, but not the only reader. Given that the version of MSMQ is used that supports remote transactional reads. Are there any issues with this way of using the queue?
Have you tried peek? This way you can read the queue without having to write back.
http://msdn.microsoft.com/en-us/library/829zyck7.aspx