Вы можете получить это исключение, если базовый COM-объект был освобожден (путем вызова IUnknown.Release
).Я видел, как это происходило во время выключения, когда среда выполнения собирала RCW (вызываемую оболочку во время выполнения), и некоторый код очистки затем пытается получить доступ к теперь недоступному объекту COM, чтобы вызвать функцию очистки в объекте COM перед его освобождением..
Если это правильно, вы можете попробовать Dispose
объект раньше при выключении.