У меня есть VPS (облачный сервер) и Visual Studio, IIS, SQL... все эти приятные вещи установлены. Я тоже иногда занимаюсь разработкой на этом VPS.
Этот веб-сайт представляет собой простой файловый менеджер. Когда он загружается, он перечисляет файлы и папки, которые находятся в папке App_Data. При этом я использую App_Data в качестве своего «корневого/домашнего/самого верхнего каталога» для файлового менеджера.
Причина, по которой я помещаю их в папку App_Data, заключается в том, что я не хочу, чтобы пользователи просто ходили так: www.mywebsite.com/ROOT/[получает список файлов]. Вместо этого, если они попытаются перейти: www.mywebsite.com/App_Data/[попытки получить список], IIS заблокирует их с красивой ошибкой (поскольку IIS блокирует доступ к этой папке).
Таким образом, веб-сайт получает доступ к структуре в папке App_Data через код позади. Вот как работает навигация по сайту. Он может загружать, загружать, перемещать файлы, переименовывать... удалять... все прямо в/внутри папки App_Data.
Единственная проблема в том, что это работает только тогда, когда я запускаю веб-сайт в Visual Studio и запускаю свои тесты, тестирую веб-сайт, отлаживаю и т. д. В тот момент, когда я публикую (через файловую систему в Visual Studio) веб-сайт в каталоге: «C: /inetpub/Sites/[WebsiteFolder]" и переходит по URL-адресу веб-сайта, веб-сайт больше не работает. Загружается, но больше не получает файловую структуру в папке App_Data, не может создавать новые папки, не может их переименовывать...
Этот веб-сайт отлично работает, когда я загружаю его через FTP в другое веб-пространство, которое размещено где-то еще в другой хостинговой компании (которая является общим хостингом).
Итак, я предполагаю (мое лучшее предположение), что IIS на моем VPS не разрешает такой доступ. И я пытался найти где-нибудь настройки IIS, которые позволили бы это сделать.
Я включил просмотр каталогов, но это, пожалуй, единственное, о чем я могу думать, кроме как убедиться, что каталог доступен (доступен для чтения/записи).
Возможно, вы знаете, что еще я могу попробовать?
Sever.MapPath()
- person MethodMan   schedule 19.02.2016