Я испытывал затруднения в течение прошлой недели, где одно из моих веб-приложений, работающих на IIS, подвешивает наугад времена по крайней мере один раз в день, я должен переработать пул приложений для отвечания ему ударом на удар в жизнь. ЦП и память кажутся нормальными.
Когда я смотрю на активные потоки в разделе рабочих процессов в менеджере по IIS, я вижу, что потоки растут, как будто они застревают, когда он зависает существуют приблизительно 25 + потоки там, при выполнении хорошо существует 3-6 в любой точке.
Я предполагаю, что это могло быть до изменения кода на моем веб-приложении C#, но я не могу разработать, где / каково это, только было несколько незначительных изменений, внесенных от того, что я могу помнить.
На прошлой неделе я действительно очень старался диагностировать с несколькими инструментами, такими как WinDbg и dotTrace, чтобы видеть, могу ли я разыскать что-либо очевидное, но я - немногим более, чем голова в этой точке.
Я вижу, что существует много потоков с Ошибками из-за тайм-аута, соединяющимися с моей базой данных NoSql (RavenDb), однако я думаю, что это - отвлекающий маневр и до потоков, заблокированных в IIS, поскольку я могу соединиться с той же базой данных из другого приложения IIS очень хорошо, а также использовать инструменты управления базой данных для управления/запрошенного базой данных.
У меня есть мини-дампы и снимки dotTrace для проигрывания с.
Вот результаты "~ *e! clrstack" на WinDbg: https://gist.github.com/phinett/7901d82fa526696d3c92
Какая-либо справка / идеи о том, что я должен высматривать для разыскивания преступника? Я рад обеспечить доступ к мини-дампам в случае необходимости.
Спасибо!
Вероятно, намного проще и быстрее начать с DebugDiag v2 update 1 и принудительно создать дамп процесса, а затем запустить анализ зависания.