Разрешение вопросов, связанных с исключениями: System.Runtime.InteropServices.COMException
Исключение COMException возникает при возвращении неизвестного значения HRESULT после вызова метода COM.
Полезные советы
Проверьте свойство ErrorCode исключения на предмет определения возвращенного COM-объектом HRESULT
Когда среда выполнения обнаруживает неизвестный HRESULT, она вызывает исключение COMException, у которого есть открытое свойство ErrorCode, содержащее возвращенное значение HRESULT. Если среде выполнения доступно сообщение об ошибке, оно будет возвращено. Однако если сообщение об ошибке не включено разработчиком в компонент COM, среда выполнения возвращает восьмиразрядное значение HRESULT вместо строки ошибки. Наличие HRESULT позволяет вызывающему методу определить причину исключения. Дополнительные сведения см. в разделе Практическое руководство. Сопоставление значений HRESULT и исключений.Отключите главный процесс.
COM используется для связи между Visual Studio и главным процессом. Поскольку COM используется ещё перед запуском кода, вызов CoInitializeSecurity порождает это исключение.
Примечания
Среда CLR преобразует известные значения HRESULT в исключения .NET, что позволяет объектам COM возвращать управляемым клиентам полноценные сведения об ошибке. Сопоставление значения HRESULT и исключения также может действовать в обратном направлении, возвращая неуправляемым клиентам значения HRESULT.
При передаче параметров с поздней привязкой в методы объектов Microsoft Office, может быть вызвано исключение COMException, если эти объекты — COM-объекты. Поздняя привязка предполагает, что такие вызовы методов включают параметр ByRef и что передаваемое свойство имеет метод доступа Set. Если свойство его не имеет, .NET Framework создает исключение MissingMethodException (HRESULT CORE_E_MISSINGMETHOD). Для временного решения этой проблемы, используйте объекты с ранней привязкой или передавайте переменную вместо свойства объекта.
См. также
Задачи
Практическое руководство. Использование помощника по исключениям