Запуск пользовательского VirtualPathProvider с предварительно скомпилированным веб-сайтом

в настоящее время у меня есть пользовательский VirtualPathProvider в веб-приложении Asp.net MVC.

Этот VirtualPathProvider проверяет область из маршрута "/{Area}/{Controller}/..." и использует модуль NameSpace.{Area}.Main.dll для возврата представлений, содержащихся в этой сборке, в качестве встроенных ресурсов.

Это прекрасно работает, и мне не нужно развертывать файлы ascx, js, css.

Теперь моя проблема заключается в следующем:

Я хотел бы предварительно скомпилировать файлы aspx и ascx в сборке, и вместо представлений в качестве встроенных ресурсов у меня был бы класс представления с Response.Write.

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

Моя главная цель состоит в том, чтобы первый раз использовать определенный вид/управление пользователем было бы быстрее и не ждать, пока произойдет компиляция.

Это требование, так как приложение может быть сгруппировано в плагины, и эти плагины должны быть развернуты в каталоге Bin.

Есть предположения?


person Carlos Sobrinho    schedule 11.12.2009    source источник


Ответы (1)


Это сообщение в блоге VirtualPathProvider In Precompiled Web Sites от Coskun SUNALI описывает решение, использующее отражение. Обратите внимание, что он очень четко дает понять, что это не официально поддерживаемое решение Microsoft, но, судя по комментариям к его сообщению в блоге, у некоторых людей оно работает хорошо.

person Martin Hollingsworth    schedule 20.05.2010
comment
Только что заметил, что был похожий вопрос stackoverflow.com/questions /12397/, которые уже ссылались на это решение - person Martin Hollingsworth; 21.05.2010
comment
Спасибо за ваш ответ. В настоящее время я тестирую решение, использующее функцию разминки нового IIS 7.5 и автоматически предварительно загружающую все страницы для принудительной компиляции... Но я попробую это в ближайшее время. Очень признателен! - person Carlos Sobrinho; 21.05.2010