Доступ к папке вне корневой папки сайта в asp.net
У меня есть около 15 веб-сайтов на сервере, я создал инструмент, который является общим для всех сайтов.
Теперь вместо того, чтобы хранить одни и те же файлы в папке отдельного сайта, я решил сохранить общую папку и оставить ее вне папки сайта, чтобы мне не приходилось хранить файлы на всех сайтах.
Но моя проблема в том, что если папка находится за пределами корневой папки веб-сайта, я не могу получить к ней доступ, так как Server.MapPath
не работает.
Я даже пытался сохранить эти файлы в папке в одном из корней сайта и получить к ним доступ, например, http://domain.com/folder/control.ascx но это тоже не работает. выдает ошибку, говоря: http:/domain.com/folder/control.ascx' is not a valid virtual path
Может ли кто-нибудь помочь мне с тем, как я могу получить доступ к файлам вне корневой папки или сохранить их в одной корневой папке сайта.
2 ответа
Вы пытались добавить виртуальный каталог под вашим сайтом, который указывает на общий каталог?
Server
Sites
Common - base directory is C:\sites\common\
SiteA - base directory is C:\sites\siteA\
common - virtual directory pointing to C:\sites\common
SiteB - base directory is C:\sites\siteB\
common - virtual directory pointing to C:\sites\common
Вам нужно установить уровень доверия всего сайта на полное доверие
Просто откройте IIS Manager
щелкните по корневому узлу и дважды щелкните по NET Trust Levels
, Здесь вы можете поэкспериментировать с различными уровнями доверия, чтобы увидеть, разрешает ли ваш Server.MapPath межсайтовые пути
Вот статья с подробностями о том, как это сделать также с помощью командной строки