Compartir vía


MDA de reportAVOnComRelease

Nota:

Este artículo es específico de .NET Framework. No se aplica a implementaciones más recientes de .NET, incluidas .NET 6 y versiones posteriores.

El asistente para la depuración administrada (MDA, por sus siglas en inglés) reportAvOnComRelease se activa cuando se producen excepciones que se deben a errores de recuento de referencias de usuario mientras se realiza la interoperabilidad COM y se usan los métodos Release o ReleaseComObject en combinación con llamadas COM sin formato.

Síntomas

Infracciones de acceso y deterioro de la memoria.

Causa

En ocasiones, se produce una excepción debido a errores de recuento de referencias de usuario mientras se realiza la interoperabilidad COM y se usan los métodos Release o ReleaseComObject en combinación con llamadas COM sin formato. Normalmente, esta excepción se descarta porque, de lo contrario, se produciría una infracción de acceso en el CLR y la caída del mismo. Cuando se habilita el asistente, esas excepciones se pueden detectar y notificar en vez de simplemente descartarlas.

Solución

Examine el código de recuento de referencias, busque errores y examine los clientes nativos de su objeto para comprobar si existen errores de recuento de referencias.

Efecto en el Runtime

Hay dos modos disponibles. Si el atributo allowAv es true, el asistente evita que el runtime descarte la infracción de acceso. Si allowAv es false —que es el valor predeterminado—, el runtime descarta la infracción de acceso, pero el usuario recibe un mensaje de advertencia donde se le indica que se produjo una excepción y se descartó.

Output

Si es posible, el resultado contiene la vtable original del puntero de interfaz COM. De lo contrario, aparece un mensaje con información.

Configuración

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

Consulte también