I've got a WebServices application that uses Crystal Reports to produce and
then export Invoices to PDF format. Without getting into too many details,
it's just a big loop statement that goes out to SQL using a SqlDataAdapter,
brings back a dataset which is pushed into the Crystal Report, and the
report is exported - nothing fancy.
Everything works great in that on my development machine, I can run through
2,000 reports without hitting any snags. But when we deploy and try to run
the WebService on a production machine, it throws out a
ThreadAbortExceptions at random times. The exception does not get raised at
one particular line of code or at any predicable interval within the loop -
it's very random, although it's almost always thrown once within the first
15 reports, and then the remaining 1,875 or so run without raising the
The only significant difference that I can point to between my development
machine and the production machine is that the production machine is a
dual-processor Xeon, while my dev machine is a lowly single processor -
could that have anything to do with it? Please know too that my code does
nothing with threads - I just run one long process in the existing thread.
It seems that the Exception is either being thrown from the Crystal Engine,
or from the SqlClient library as it retrieves the data - and actually I've
seen evidence that it's throwing from both.
In any case, if anybody has any ideas on this, please let me know.