• Nice article, but I have to say, my only experience with the Primary Interop Assembly (there's a reason that abbreviates to PIA!) with VB.NET was not pleasant:

    Excel process could NOT be terminated gracefully.

    I spent several hours looking online and trying increasingly intrusive methods to kill Excel after the .NET code was done with the Excel.Application. The only thing that worked was to grab a pointer to Excel and kill the process.

    See, e.g., http://www.velocityreviews.com/forums/t86434-p2-excel-interop-from-asp-net-process-cant-be-killed.html. As a comment there says,

    "Two years and a new version of Visual Studio, Office and .Net later, and this thread is still being used !"

    I don't know if you've had any problems like this, but it sounds as if at least one poster, gary.humphryes, did.

    Yours,

    Rich