Поделиться через


Помощник по отладке управляемого кода reportAvOnComRelease

Примечание.

Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.

Помощник отладки управляемого кода (MDA) reportAvOnComRelease активируется при возникновении исключений, вызванных ошибками подсчета пользовательских ссылок при выполнении COM-взаимодействия и использовании метода Release или ReleaseComObject в сочетании с необработанными вызовами COM.

Симптомы

Нарушения прав доступа и повреждение памяти.

Причина

Иногда исключение возникает в связи с ошибками подсчета пользовательских ссылок при выполнении COM-взаимодействия и использовании метода Release или ReleaseComObject в сочетании с необработанными вызовами COM. Обычно это исключение отменяется, так как в противном случае в среде CLR произойдет нарушение прав доступа, и работа среды будет завершена. Когда этот помощник включен, такие исключения вместо простой отмены можно обнаруживать и выводить в отчетах.

Разрешение

Изучите свой код подсчета ссылок для поиска ошибок и проверки собственных клиентов объекта на наличие ошибок подсчета ссылок.

Влияние на среду выполнения

Доступно два режима. Если атрибут allowAv имеет значение true, помощник запрещает среде выполнения отменить нарушение прав доступа. Если allowAv имеет значение false, которое используется по умолчанию, среды выполнения отменяет нарушение прав доступа, однако пользователь получает предупреждение о возникновении и отмене исключения.

Выходные данные

Когда это возможно, выходные данные содержат исходный vtable указателя интерфейса COM. В противном случае отображается информационное сообщение.

Настройка

<mdaConfig>
  <assistants>
    <reportAvOnComRelease />
  </assistants>
</mdaConfig>

См. также