Используя виртуальные каталоги IIS в проектах веб-приложения Visual Studio

У меня есть проект ASP.NET, который имеет следующие каталоги

\ads
\photos

обе этих папки имеют тысячи файлов в них, которые часто обновляются. Мне в настоящее время настраивали мой IIS как

\inetpub\wwwroot\foo
\inetpub\wwwroot\foo\ads
\inetpub\wwwroot\foo\photos
\inetpub\wwwroot\foo.staging
\inetpub\wwwroot\foo.staging\ads
\inetpub\wwwroot\foo.staging\photos

Я рассматриваю превращение этого в

\inetpub\wwwroot\foo
\inetpub\wwwroot\foo\ads
\inetpub\wwwroot\foo\photos
\inetpub\wwwroot\foo.staging
\inetpub\wwwroot\foo.staging\ads
\inetpub\wwwroot\foo.staging\photos
\inetpub\wwwroot\foo.resources\ads
\inetpub\wwwroot\foo.resources\photos

и поворачивая подкаталоги в нечто и foo.staging в виртуальные каталоги, которые указывают на foo.resources подкаталоги. Таким образом, в то время как я тестирую в подготовке, я не должен копировать все файлы в рекламе и фотографиях каждый раз, когда я развертываюсь и волнуюсь о вещах, являющихся из синхронизации. действительно ли это - плохая идея? Я разрабатываю в Visual Studio, 2008 - Является там способом заставить VS рассматривать мои подкаталоги проекта веб-приложения как виртуальные каталоги?

10
задан kenwarner 22 December 2009 в 04:45
поделиться

6 ответов

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

.
0
ответ дан 4 December 2019 в 04:36
поделиться

Виртуальный каталог, содержащийся в веб-приложении в IIS, просто выглядит как пакет в Visual Studio.

При открытии корневого приложения и нажатии на пакет он должен спросить вас, хотите ли вы добавить дочернее приложение / vdir к решению. Затем откройте его как второй проект, и вы сможете ссылаться на него или использовать его по мере необходимости.

Идея тестового и живого развертывания заключается в том, что у вас должны быть отдельные данные на случай, если ваше тестирование что-то сломает. По сути, используя живые данные для тестирования, вы должны быть уверены, что не удаляете / не изменяете то, чего не должны, иначе вы сломаете свою живую копию данных.

При этом, если все, что вы планируете создать, - это что-то, что считывает данные, это отличная идея, поскольку она сэкономит вам много места на диске и сэкономит время при развертывании.

Сначала сделайте так, как вы хотите, в IIS, а затем откройте все в VS.

Visual Studio рассматривает все виртуальные приложения, определенные на сервере, как подчиненное приложение. Если ресурсы не настроены в дочерних каталогах как приложение в IIS, они должны отображаться как обычная папка.

Например ...

Если вы настраиваете 2 веб-сайта в IIS и сопоставляете физическую папку с изображениями в обоих как виртуальных каталогах, у вас должен быть доступ к ним как к обычным папкам при открытии любого из них в Visual Studio.

Однако, если вы превратите виртуальные каталоги в приложения в IIS, а затем откроете веб-сайт в VS, он должен просто показать пакет. Щелчок по нему добавляет его как второй проект в VS.

Я не умею объяснять, но, надеюсь, это имело смысл.

Надеюсь, это поможет :)

2
ответ дан 4 December 2019 в 04:36
поделиться

Я вижу аналогичную проблему с моим приложением, связанную с наличием большого количества ресурсов для копирования при развертывании.
Я подумываю о создании обработчика файлов, который будет предоставлять браузеру ресурсы изображений. Т.е. При связывании с изображениями у вас будет что-то вроде /filehandler.ashx?image=/ads/101/o3904838402384.jpg , тогда у вас может быть просто параметр конфигурации, указывающий на разные или одни и те же папки хранилища файлов для как в тестовой, так и в живой среде.

Вот ссылка на основы того, как это работает.

http://dotnetperls.com/ashx-handler

0
ответ дан 4 December 2019 в 04:36
поделиться

Другой вариант ... Если вы используете SVN, и если вы счастливы, что изображения физически дважды на диске, но все еще синхронизированы, это использовать SVN Externals

0
ответ дан 4 December 2019 в 04:36
поделиться

Вы можете , использовать связанные папки в Visual Studio = это создает виртуальную ссылку на папку в другом проекте (или в другом месте на диске), но не копирует их физически на диск.

0
ответ дан 4 December 2019 в 04:36
поделиться

Поскольку это ресурсы, есть ли какая-то особая причина, по которой они вообще нужны в Visual Studio? VS, IMO, предназначен для управления кодом в решении, не обязательно структурой каталогов.

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

0
ответ дан 4 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: