Tengo un componente C# .NET al que se llama desde un exe ActiveX COM fuera de proceso.¿Cómo puedo depurar una excepción no controlada en el código administrado cuando se llama desde COM?
Puedo iniciar el depurador en Visual Studio 2005 ejecutándose en mi exe COM que llama a mi componente .NET. Los puntos de interrupción funcionan pero no es posible interrumpir una excepción no controlada de "Conjunto de referencias de objeto". He intentado lo siguiente en vano:
- han comprobado todas las excepciones CLR de las excepciones VS de diálogo
- habilitado "descanso cuando excepciones cruzan dominio de aplicación o los límites administrados/nativos"
- permitió código no administrado la depuración mi Projecy
- discapacitados "Sólo mi código" depuración
Cuando marcó todas las excepciones de CLR en el cuadro de diálogo Excepciones de VS, ¿utilizó la columna de usuario no administrado o la columna lanzada? Es solo una suposición, pero sospecho que el código de interoperabilidad COM/Managed manejaría excepciones, por lo que podría convertirlos en valores HRESULT adecuados. –
He comprobado tanto el usuario no administrado como el lanzado. Creo que tienes razón Frank: COM está manejando las excepciones. Encontré este http://blogs.msdn.com/b/oldnewthing/archive/2011/01/20/10117963.aspx pero no estoy seguro de cómo configurar IGlobalOptions – tukushan