MultiTerm API encountering "External component has thrown an exception"

While trying to work with the MultiTerm API (Sdl.MultiTerm.TMO.Interop) I frequently encounter the error

    External component has thrown an exception.

Sometimes this is thrown after a call to ITermbaseRepository.Termbases and the code is enumerating each ITermbase instance, other times it's thrown when I try to instantiate a new instance of Sdl.MultiTerm.TMO.Interop.ApplicationClass.

The setup in which it is being used is a class library (which references the interop assembly) which is being called by a .NET WebAPI (i.e., REST) project.

Has anyone else come across this? Any ideas what's causing it and how I can prevent or work around it?