IIS7 - родительские пути виртуальных каталогов ведут себя не так, как в предыдущих версиях

Я выполняю миграцию веб-сервера, работающего на IIS 5, на IIS 7. Я замечаю, что виртуальные каталоги ведут себя по-разному между ними.

У меня есть сайт, расположенный по адресу c:\inetpub\SiteName. Этот сайт содержит виртуальный каталог "bob", который указывает на c:\virtualdirs\bob. В папке bob есть скрипт (script.asp), который содержит только:

<!--#include virtual="../index.asp"-->

Я замечаю различное поведение между IIS5 и IIS7, когда пытаюсь запустить скрипт, перейдя по http://sitename/bob/script.asp:

IIS5 ссылается на родительский путь сайта и импортирует c:\inetpub\SiteName\index.asp. IIS7 ссылается на родительскую папку виртуального каталога и ищет файл a c:\virtualdirs\index.asp (который не существует). Выполнение Response.Write для Server.MapPath подтверждает это.

Есть ли способ заставить IIS7 вести себя как IIS5 в этом отношении? К сожалению, перенести index.asp и его логику в папку virtualdirs не вариант, так как виртуальный каталог будет общим для многих сайтов (с разными index.asps).

Благодарю.

1 ответ

Решение

Ответил на другом форуме: http://forums.iis.net/p/1168652/1946977.aspx

В значительной степени подтверждает, что функциональность изменилась между версиями IIS. Единственный способ исправить это - изменить любые ссылки на код с ".." на "/" (корень сайта) относительно виртуальных каталогов.

Очевидно, не оптимальное решение, но оно будет делать пока.

Другие вопросы по тегам