The problem for web apps (for example written in Classic ASP or ASP.NET) is that each request can create its own instance of Excel, and if the request that did this didn't complete and cleanly close down Excel then you end up with loads of orphaned Excel instances lurking in the background. When this happens eventually the web server runs out of memory.
Excel is definitely not intended for this type of use. Some people get lucky because they know what they're doing, 99% of the rest should just stay away.
It's slow, and really hard to debug when it's not working (not only pdf output but merge fields).
> Just us a serialized queue using MSMQ. Write the queue listener in Javascript and register with COM+.
Sure, but now you have MSMQ and COM+ to deal with...and debugging/fixing when it breaks (under load), or isn't secured properly.
The smart folks shell out for a copy of Aspose Cells and get the job finished on time.
On more recent projects in last ~12 months, I have used OpenXML.
The lock file is on the AIX side because Win files aren't atomic.
It's a bit Rube Goldberg-ish and has low traffic, but it's rock solid.
https://www.connectionstrings.com/microsoft-jet-ole-db-4-0/s...
https://www.connectionstrings.com/microsoft-text-odbc-driver...
I wouldn't recommend it...