Все вышеперечисленное скорее всего верно. Самым большим фактором, влияющим на производительность сайта ASP.NET, над которым я работал, было то, что все, что с ним связано, было старым. Версия платформы .NET, серверы, инфраструктура баз данных и сам код сильно устарели.
Я подозреваю, что многие сайты ASP.NET, как правило, являются корпоративными сайтами. Они не получают много любви, так как они, как правило, просто работают . Люди не переписывают их, пока они не должны, что часто очень долго.
Я знаю сайт , который я работал с используемым ASP.NET получил огромное ускорение только путем перехода к новой версии рамок, которые были гораздо более эффективным JITing и здравомыслящее кэширование по умолчанию.
Другое дело, что многие сайты ASP.NET не знают, как правильно масштабировать. У них не настроена правильная балансировка нагрузки, потому что проектирование их сайта для правильной работы с веб-садами не является распространенным или хорошо документированным в сообществе. Если вы с самого начала не разрабатываете свой сайт для веб-садов, вы не сможете использовать встроенный механизм горизонтального масштабирования, который есть в IIS. Балансировка нагрузки программного обеспечения в Windows NLB не очень распространена и сложна в управлении. (Это возвращает нас к тому факту, что ASP.NET, как правило, является корпоративным программным обеспечением и управляется компанией, управляющей сайтом, а не ИТ-специалистами, которые знают, как правильно настроить этот материал.)
Аппаратная балансировка нагрузки с помощью F5s очень дорогая, но, похоже, является наиболее распространенным и простым механизмом масштабирования сайтов ASP.NET в корпоративных сетях. Я думаю, что среди разработчиков открытого исходного кода ожидается, что вы с самого начала создадите балансировку нагрузки с помощью свободно доступных инструментов с открытым исходным кодом, которые автоматически масштабируются в зависимости от использования. Это не распространено в мире ASP.NET из того, что я видел.