Общая настройка WinDbg для ASP.Net Core, работающего на .Net Full Framework - PullRequest
0 голосов
/ 12 мая 2019

Мне нужно отладить аварийный дамп из приложения ASP.Net Core 2.2.4 + .Net Framework 4.7.2, работающего под IIS, в пуле приложений «No Managed Code». Приложение не может использовать .Net Core вместо полного .Net из-за некоторых библиотек, которые несовместимы с .Net Core. Это 32-разрядное приложение, с аварийным дампом все в порядке (сгенерировано с помощью 32-разрядного диспетчера задач, как рекомендовано MS).

Я видел много руководств по отладке для .Net Core или .Net Full, но я не могу получить какую-либо полезную информацию из Windbg в настоящее время, и я подозреваю, что загружаю неправильные библиотеки SOS / CLR.

Приложение представляет собой WebAPI, и при базовом тестировании стабильности (один крошечный запрос каждые 30 секунд) процесс обрабатывает 100% одного ЦП через 5 минут или 2 часа, а время ожидания дополнительных запросов истекает. После примерно 20 таких тестовых прогонов никогда не было более двух часов без зависаний.

Я могу легко взять мини-дамп и пытаюсь выяснить, где он висит. Изучение трассировки стека в windbg не помогает, так как я вижу только общие процессы потоков и никаких ссылок на код при взгляде на поток, связанный с !runaway. Я подозреваю, что я не загружаю правильные символы. Я сбрасываю процесс приложения (Kestrel), который зависает, а не работник IIS, который, как я знаю, не имеет отношения к такому пулу приложений.

Прежде чем публиковать более подробную информацию, кто-нибудь может прокомментировать, какую SOS / CLR я должен загрузить для такого сценария?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...