Because of the multithreaded nature of my application, which has to load Aspose dynamically when needed, I was loading the Aspose license into a stream that I then pass to the child threads which have to load the component. What I found is that the stream object apears to become corrupted if the same child thread has to load Aspose more than once.
The workaround I found is to pass a byte array of the child threads and create the memorystream in the child threads, there's never a problem. This approach works fine for me. If I had the option of loading Aspose just once in the child thread, this would never be a problem.
I've included an attachment to demonstrate the issue.