Может кто-нибудь помочь мне отладить эту проблему:Исключение Stackoverflow в System.Core.dll
Я работаю над MVC webapp. У меня есть динамическая система маршрутизации, которая хранит маршруты в базе данных как friendlyUrls
. Вся моя дружеская логика url работает отлично уже несколько месяцев, так что это может не иметь ничего общего с ошибкой.
Сегодня утром я неожиданно начал получать Stackoverflow
Исключения в библиотеке System.Core.dll
, когда я перехожу к определенному URL-адресу, а именно ~/Login
. Этот маршрут mvc указывает на действие контроллера (AccountController.Login()
). Действие приписывается пользовательским actionfilter, но ни фильтр действия, ни код действия никогда не попадают.
Последний код, который я могу остановить с использованием точки останова, - это метод global.asax
FormsAuthentication_OnAuthenticate
. Этот метод работает отлично и устанавливает роли пользователя (который в этот момент отсутствует, потому что он еще не вошел в систему). Затем он выходит из этого метода и сразу же выдает исключение Stackoverflow
.
Я не могу найти какие-либо другие затронутые страницы, но не могу проверить их пропуски, потому что я не могу войти в страницы администрирования (где проблема также может существовать).
Может ли кто-нибудь сказать мне, как получить дополнительную информацию о том, что вызывает эту проблему?
Можете ли вы получить трассировку стека? – svick
Чтобы эффективно ответить на этот вопрос, нам нужна трассировка стека; очень маловероятно, что в System.Core.dll есть ошибка, поэтому, скорее всего, это ваш код. Мы не можем сказать вам, в чем проблема, если вы не можете включить Stack Trace и 1) небольшую программу, которая воспроизводит эту проблему, или 2) код, который вызывает трассировка стека. –
Это была одна из проблем в ее отладке, среда отладки визуальной студии не имеет трассировки стека, так как стек переполнен (пролегает?) :) - Но я только что понял, в чем проблема: моя собственная глупость. Я использую инъекцию зависимостей для инъекции услуги, которая сама вызывала исходную услугу, поэтому она перешла в бесконечный цикл решения одной и той же двух зависимостей! Было бы неплохо, если бы Unity могла распознать такую проблему и дать немного больше подробностей. Это было 4 часа, я никогда не вернусь. – hofnarwillie