2014-04-15 1 views
1

Мой ASP.NET содержит виртуальную папку IIS, которая указывает на статические изображения (так что HTTP-запросы, обслуживающие эти изображения, даже не касаются моего приложения).Каков правильный способ добавления ImageResizer в виртуальную папку IIS

Для веб-клиентов, потребляющих мой сайт в http://<server>/myAppRoot:

Page1.aspx 
Page2.aspx 
images/MyAppLogo.png 
static/file1.png <-- IIS virtual folder "static" points to D:\someOtherPath 
static/file2.png 

На сервере файловой системы в C: \ somePath \ myAppRoot:

Global.asax 
Page1.aspx 
Page2.aspx 
Web.config 
bin\MyAppAssembly.dll 
bin\ImageResizer.dll 
images\MyAppLogo.png 

И в другом месте на сервере живут все статические изображения на D: \ someOtherPath:

file1.png 
file2.png 

Я могу добавить ImageResizer в ASP.NET bin, рядом с моими собственными сборками и добавьте тег <resizer> в Web.config, ImageResizer запустит и обработает любой запрос из моей фактической папки приложения. Я могу использовать все трюки ImageResizer для танца MyAppLogo.png.

Но ImageResizer не распознает перехватывать любые запросы для виртуальной папки /static/ (которая представляет собой папку, содержащую множество загруженных изображений, на которые я хочу маленькие миниатюры на лету).

Как настроить ImageResizer для обработки виртуальной папки /static/?

Я должен добавить, что /static/ добавлен нашим установщиком, полностью вне нашего приложения, и не является тегом <location> внутри моего Web.config моего приложения.

Любые предложения по настройке ImageResizer для обработки виртуальной папки IIS /static/?

ответ

0

Как я понимаю, ImageResizer должен работать с провайдерами виртуального пути IIS.

Однако есть плагин VirtualFolder, который доступен бесплатно. См. http://imageresizing.net/plugins/virtualfolder. Обратите внимание на оговорку:

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

У меня нет личного опыта в плагине, но конфигурация кажется легкой; вам просто необходимо сопоставить виртуальные пути к физическим путям, как это:

<add name="VirtualFolder" virtualPath="~/static/" physicalPath="D:\someOtherPath" vpp="false "/> 
+0

Нет, это не так. Я не могу использовать плагин 'VirtualFolder', так как он не предназначен для производственного развертывания. –

0

Ну, тестирование попыток доступа к myAppRoot/static/* путям непосредственно на веб-сервер показал гораздо более подробную ошибку IIS (403,1 Запретный).

Папка /static/ была предварительно настроена с доступом «Чтение», когда ему нужен доступ «Сценарий».

Решение:

Изменить <handlers> из <system.webServer> в D:\someOtherPath\Web.config к <handlers accessPolicy="Script" />