I built something similar:
1. web site for a user to request a report and view pdf
2. a windows service to generate the pdf
3. I used Rhino.ServiceBus as the transport between the website and
windows service.
You could also use NServiceBus or MassTransit instead of RSB.
Something to remember
I'm developing a website using monorail and active record that creates
pdf reports for users. One thing that I've encountered is that some
reports take a very long time and I was wondering what the best way to
treat this would be. Currently it just processes while holding up the
browser and
Use AsyncActions, and free the IIS worker thread.
but actually the even better way of doing that is to put the required job on
an *off process* queue (msmq, a DB table, or even a dedicated directory in
the filesystem), and tell the user We're processing your request.
The you offload the work to