StackOverflowException en ASP.net
Apunto este snippet, como recordatorio.
Como indica el comentario del código, me ha ocurrido que necesitaba ejecutar una función recursiva, que recorriese un árbol en busca de un nodo.
Como mi árbol había sido construido por el usuario, y no existían validaciones que lo impidiesen, estaba realizando una búsqueda recursiva, en la que uno de los nodos hijo era a su vez padre en la misma rama.
Y como indica la MSDN
Starting with the .NET Framework version 2.0, a StackOverflowException object cannot be caught by a try-catch block and the corresponding process is terminated by default. Consequently, users are advised to write their code to detect and prevent a stack overflow.
el el StackOverflowException no se puede capturar en un bloque try…catch, y como consecuencia, el proceso finaliza sin más, sin hacer preguntas.
Esto, en una aplicación de escritorio, aunque es problemático, no tiene mayor repercusión, y el fallo es evidente; La aplicación se cierra sin hacer preguntas. Pero en una aplicación Asp.net, el proceso del IIS se reinicia, y hasta que te das cuenta del fallo… puede pasar mucho tiempo.
http://msdn.microsoft.com/en-us/library/system.stackoverflowexception.aspx