Cassini намного медленнее, чем IIS для MVC RenderPartial

У меня есть представление MVC с рекурсивным вызовом частичного представления, которое отображает иерархические данные.

Полное дерево обычно включает порядка 500 или около того элементов.

Все данные включены в модель, а модель представляет собой тривиальный класс записей — в ней нет ничего, кроме автосвойств.

В IIS это работает нормально.

Однако в Cassini/WebDev (встроенный веб-сервер Visual Studio) эта страница работает мучительно медленно и часто отключается.

Небольшое копание показывает, что это связано с тем, что каждый вызов Html.RenderPartial занимает около 200 мс (или 1/5 секунды). Фактический частичный вид, кажется, занимает менее миллисекунды или около того.

У кого-нибудь есть идеи, почему это так медленно?

Почему это будет отличаться между IIS и Cassini? Приложение IIS указывает на мой каталог разработки; они работают с одним и тем же кодом, сборкой и конфигурацией.


person Keith    schedule 16.12.2009    source источник


Ответы (1)


Я думаю, что это может быть связано с кэшированием разрешенных путей представления. Статья здесь объясняет проблему, о которой я говорю.

Заметите ли вы такое же поведение, если вы пройдете полный путь представления, например:

 RenderPartial("~/Views/MyView.ascx")

Доброта,

Дэн

person Daniel Elliott    schedule 16.12.2009
comment
Спасибо (+1), что решает проблему, но не совсем объясняет, почему. Обе службы используют один и тот же код (отладочная сборка) с одним и тем же файлом web.config — почему Cassini решает игнорировать кеш? - person Keith; 16.12.2009
comment
Вероятно, это связано с тем, что Debug = true на одном из серверов и = false на другом. - person Gregory; 09.03.2010