excepción sin rastro de pila - ¿cómo?

Tenemos un servicio que registrará las excepciones no manejadas en el nivel de dominio de la aplicación (a través de Log4net).

Nos registramos:

2014-01-28 16: 49: 19,636 ERROR [49] FeedWrapperService - System.NullReferenceException no controlada: Referencia de objeto no establecida en una instancia de un objeto.

Esta excepción no tiene rastro de pila. ¿Cómo es eso posible sin hacer algunas locuras al objeto de excepción?

Nuestro código de manejo:

AppDomain.CurrentDomain.UnhandledException += LogAnyExceptions;

private void LogAnyExceptions(object sender, UnhandledExceptionEventArgs e)
{
    log.Error("unhandled", (Exception)e.ExceptionObject);
    throw (Exception)e.ExceptionObject;
}

Se me ocurre que el relanzamiento aquí no tiene sentido porque el dominio de aplicación se reducirá junto con el proceso de todos modos, pero no creo que afecte nuestra situación.

El visor de eventos de la aplicación de Windows también muestra solo esta excepción de referencia nula y no rastrea.

He probado el registro de controladores de excepciones y registra con éxito el seguimiento de la pila y cualquier excepción interna. Si fue lanzado por nuestro código, veríamos un rastro de pila. Si fue lanzado por la biblioteca c # de terceros, entonces, nuevamente, veríamos un seguimiento de pila de al menos un método (ya sea una excepción re-lanzada o no). Aquí vemos una excepción gestionada sin rastro de pila. No sé cómo es esto posible.

Al observar la biblioteca de terceros descompilada, habla con el código no administrado, y el evento que generó esta excepción es probable en un terreno no administrado, pero ¿cómo podría esta situación provocar una excepción de referencia nula administrada sin un seguimiento de apilamiento?

La causa de este problema es intermitente. Hemos estado ejecutando este código en producción durante varios meses y lo hemos visto hacer esto una vez. Es bastante raro

El consenso general es que el sistema responsable de este tipo de problema debería pasar a un proceso secundario para que podamos resolverlo y reiniciarlo de forma segura y automática, pero sería bueno saber qué está pasando.

Editar para incluir información de comentarios de abajo:

Mi excepción no es un relanzamiento estándar, porque el seguimiento de la pila es nulo o está vacío. No tiene el nombre del método de relanzamiento. Examinando más, la clase Excepción se puede construir a partir de información serializada, y parece que la información serializada podría contener cadenas nulas para el seguimiento de la pila, y potencialmente podría crearse sin causar otros errores. Supongo que podría venir de allí, pero no sé cómo se originó.

Respuestas a la pregunta(2)

Su respuesta a la pregunta