2011-12-14 2 views
4

Эта ошибка убивает меня так много. Я не могу зафиксировать эту ошибку в Application_OnError. Единственное сообщение, которое я могу получить, это журнал событий.Сбой приложения из-за stackoverflow

Application: w3wp.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to stack overflow. 



Faulting application w3wp.exe, version 7.0.6001.18000, time stamp 0x47919413, faulting module nlssorting.dll, version 4.0.30319.235, time stamp 0x4da3fc88, exception code 0xc00000fd, fault offset 0x000020d4, process id 0x%9, application start time 0x%10. 

У меня есть очень большое приложение, и с вышеуказанной ошибкой я не могу судить, где точная причина StackOverflow. Можете ли вы помочь мне исправить это?

+0

где в приложении эта ошибка возникает? – BizApps

+0

Почему вы сказали, что не можете зафиксировать эту ошибку в Application_OnError? –

+0

Я регистрирую ошибки в своем приложении Application_OnError, и ничего не приходит туда в HttpContext.Current.Server.GetLastError() –

ответ

2

Вы можете получить дополнительную помощь в Application_End. Отсюда вы можете захватить стек выключения, используя что-то вроде этого ...

HttpRuntime runtime = (HttpRuntime)typeof(System.Web.HttpRuntime).InvokeMember("_theRuntime", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetField, null, null, null); 

(string)runtime.GetType().InvokeMember("_shutDownStack", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, null, runtime, null); 

(string)runtime.GetType().InvokeMember("_shutDownMessage", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, null, runtime, null); 
Смежные вопросы