Сбой поставщика виртуального пути N2CMS на веб-сервере - PullRequest
1 голос
/ 07 сентября 2011

Я создаю веб-сайт с N2, используя пакеты NuGet (которые я собираю прямо из GitHub). Все файлы, составляющие интерфейс управления в папке / N2, скомпилированы в N2.zip, и есть поставщик виртуального пути, настроенный для обслуживания чего-либо в папке / N2 из zip-файла.

На моей машине для разработки все работает отлично. Когда я развертываю его на веб-сервере (под управлением IIS 6 или IIS 7.5), запросы на файлы в папке / N2 возвращаются с 404. Есть любопытное исключение: запросы со значениями строки запроса обрабатываются. Например, /N2/Login.aspx?ReturnUrl=%2fn2 работает, а /N2/Resources/Css/All.css - нет. (Я использую Fiddler 2 для мониторинга запросов.)

Это сайт MVC, работающий под .Net 4.0 и предварительно не скомпилированный.

Я включил трассировку ASP.Net в web.config, и из этого я вижу, что VPP выполняется, потому что он записывает строки трассировки, начинающиеся с ZipVPP:

ZipVPP: False ~/default.cshtml      
ZipVPP: False ~/default.vbhtml  4.79004203405183E-05    0.000048
ZipVPP: False ~/index.cshtml    9.07992130999052E-05    0.000043
ZipVPP: False ~/index.vbhtml    0.000125475536747951    0.000035
ZipVPP: False /Views/Home/Index.aspx    0.000476485344693378    0.000351
ZipVPP: False /Views/Home/Index.ascx    0.000554325119945653    0.000078
ZipVPP: False /Views/Shared/Index.aspx  0.000631632393110378    0.000077
ZipVPP: False /Views/Shared/Index.ascx  0.000704500969472239    0.000073
ZipVPP: False ~/Views/Home/_ViewStart.cshtml    0.000794229163423298    0.000090
ZipVPP: False ~/Views/Home/_ViewStart.vbhtml    0.000833389826910285    0.000039
ZipVPP: True ~/Views/_ViewStart.cshtml  0.000872745800133037    0.000039
ZipVPP: False ~/_ViewStart.cshtml   0.000935947959862434    0.000063
ZipVPP: False ~/_ViewStart.vbhtml   0.000972131211344948    0.000036
ZipVPP: True ~/Views/Shared/_Layout.cshtml  0.00102791407786914 0.000056
ZipVPP: False /Views/Home/LayoutPartials/Rotator.aspx   0.00113080303437734 0.000103

Это говорит о том, что это может быть ошибка в VPP, но я не уверен.

1 Ответ

0 голосов
/ 29 августа 2012

Исправлено было настроить IIS 6 для подстановочной маршрутизации, чтобы все запросы, включая изображения, CSS, сценарии и т. Д., Проходили через ASP.Net.Это дает провайдеру виртуального пути шанс.Без подстановочной маршрутизации IIS будет искать расширение файла, а для типичного статического типа файла, например .jpg или .css, просто искать файл в файловой системе.Поскольку файлов там нет, возвращается 404.

Чтобы настроить это, см. Сбой поставщика виртуального пути N2CMS на веб-сервере .Задайте путь к aspnet_isapi.dll, чтобы он соответствовал нужной версии .Net, и снимите флажок «проверить, существует ли файл».

...