2012-06-13 2 views
1

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

У меня есть мое приложение, расположенное в http: \ localhost \ MyApplication (c: \ inetpub \ wwwroot \ MyApplication). Теперь у меня есть виртуальный каталог, созданный в http: \ localhost \ MyApplication \ ImagePaths (указывая на папку d: \ images)

В одной из моих страниц aspx Я пытаюсь перечислить все изображения в http: \ localhost \ MyApplication \ ImagePaths виртуальный каталог.
Я пробовал: DirectoryInfo dir = new DirectoryInfo (Server.MapPath ("~/ImagePaths")); Dir содержит c: \ inetpub \ wwwroot \ images !! ??!?!?

Каков правильный способ сделать это? Я просто хочу создать каталог за пределами моего приложения и перечислить содержимое в моем приложении.

Благодаря

ответ

0

В ~ означает «от корня моего виртуального каталога». Затем вы строите путь оттуда, который не существует и запрашивает его расположение на диске.

Вы получите ответ на этот вопрос, даже если папка не существует.

Почему бы не использовать конфигурацию, чтобы указать, где можно найти изображения, а не жесткое кодирование виртуального каталога? Ваш нынешний подход будет его проблемами, как только вы будете размещать эти vdirs на отдельных машинах в любом случае, поэтому лучше использовать config для сохранения пути unc.

+0

Конечно, я открыт для этого. Как использовать конфигурацию. Я новичок в этом. ура –

4

Я хотел бы использовать <appSettings> раздел web.config и хранить его там:

<appSettings> 
    <add key="ImagesPath" value="D:\Images"/> 
</appSettings> 

Тогда из кода, вы можете получить доступ к нему через:

string imagesPath = ConfigurationManager.AppSettings["ImagesPath"]; 

и:

DirectoryInfo dir = new DirectoryInfo(imagesPath); 
Смежные вопросы