ASP.NET MVC, пользовательский VirtualPathProvider и IIS6 - PullRequest
0 голосов
/ 19 августа 2010

Я реализовал свой собственный VirtualPathProvider для загрузки «встроенных» представлений.

Это работает очень хорошо при запуске из Visual Studio, но я получаю сообщение «Представление не найдено» при работе на IIS6.

Чего-то не хватает в web.config или могут быть какие-то другие проблемы?

Я добавил некоторые записи, и кажется, что, хотя я регистрирую Custom VirtualPathProvider в Application_Start, System.Web.Hosting.MapPathBasedVirtualPathProvider по-прежнему используется.

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Для комбинации Custom VPP + IIS6 + Прекомпилированный сайт нам нужно добавить VPP из AppInitailize ();

public static class AppStart
{
    public static void
    {
    // code to be executed automatically by the framework
    }
}

См. Также:

http://sunali.com/2008/01/09/virtualpathprovider-in-precompiled-web-sites/

0 голосов
/ 06 сентября 2010

Ваш не используется вообще?VirtualPathProviders работают в стеке, поэтому в вашем VirtualPathProvider вы должны заметить, что элемент базового класса «Previous» фактически является экземпляром «MapPathBasedVirtualPathProvider».

Если вы:

  1. Присоедините ваш отладчик к IIS

  2. Внесите изменения в ваш файл web.config, затем измените егоназад, затем сохраните (чтобы вызвать перезапуск) - пока он еще подключен!

  3. Поместите точку останова в свой VPP в FileExists

  4. Нажмите страницу

Ваш VPP получил удар?В этом случае может возникнуть проблема, связанная с тем, что после первого запроса кэширование MVCs ViewEngine не позволяет вашему VPP получить доступ к дополнительным запросам ...

...