I'm looking to implment msmq for lengthy tasks in future asp.net projects. so far it's been pretty straight forward. I was able to setup a simple example where i send X number of requests from a webpage to msmq. a simple service reads the messages and writes that it was recieved to the db. the webpage updates automatically (ajax timer/updatepanel) with the message status. I was also able to implement Receiving messages asynchronisly. I found that you must close the queue and remove the completed event handler, or you will continue to process the last message over and over, resulting in duplicate entries.
for my next project (basic reporting service) the workflow would look something like this
1. send DTO in message to queue from asp.net.
2. windows service reads queue every .5 second.
3. if there is a message,
receive it
create report,
save bytes to file/db
write complete status to db.
4. after message is sent have a page to query the db every 3 seconds for status updates.
5. once complete display report on webpage.
what hints, tips, pitfalls have others encountered when working with msmq?