Разница между приложением и виртуальным каталогом


11

Я разработчик asp.net, я всегда путаюсь между приложением и виртуальным каталогом в IIS. Кажется, что в iis 6.0 вы можете создавать только виртуальный каталог.


1
В IIS6 вы создаете виртуальный каталог, а затем конвертируете его в приложение.
Марк Хендерсон

Ответы:


13

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

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

Приложение - это граница между разными папками. ASP.NET использует его для создания нового корня AppDomain (или корня приложения). Корень приложения использует другой файл global.asax, папку bin и другие app_ [папки.].

В IIS6 и IIS7, если вы создаете виртуальный каталог, он также не является приложением по умолчанию. ASP.NET поместит его в тот же домен приложений, что и его родительская папка.

В IIS6 вы можете преобразовать виртуальный каталог или обычную папку в приложение, щелкнув правой кнопкой мыши -> Свойства и Создать.

В IIS7 параметры называются по-разному, но в фоновом режиме они одинаковые. Создание виртуального каталога позволяет вам создать vdir, который по-прежнему является частью AppDomain его родителя, т.е. не является приложением).

Опция «Добавить приложение» фактически создает виртуальный каталог и затем помечает его как приложение. (вы заметите, что он позволяет вам указать путь).

Вы также можете щелкнуть правой кнопкой мыши на существующей папке (или vdir) и Преобразовать в приложение. Это способ создать границу приложения в существующей обычной или виртуальной папке.


Веб-сайт по умолчанию на моем IIS 7 работает под управлением MOSS 2007 (SharePoint). Поскольку я хочу, чтобы пользователи чувствовали, что они все еще находятся на портале, я создал веб-приложение ASP.NET с аналогичной маркой и настроил его как приложение на основе виртуального каталога на том же сайте. Веб-сайт по умолчанию и это приложение ASP.NET используют один и тот же пул приложений. Прежде всего, это безопасная / хорошая практика? Во-вторых, если я включу и использую сеанс в приложении ASP.NET, это каким-либо образом поставит под угрозу целостность / производительность управляемого сеанса SharePoint, как-то повлияет на SharePoint?
Веб-пользователь

@WebUser Это нормально, чтобы они были в одном пуле приложений, и, поскольку они являются отдельными приложениями в пуле приложений, состояние сеанса будет отдельным и изолированным друг от друга. Однако я все равно рекомендую использовать отдельный пул приложений. Если что-то выходит из строя в одном, вам не нужно снимать оба, чтобы переработать или исправить другое. И у вас будет больше возможностей заблокировать разрешения NTFS, чтобы изолировать их друг от друга.
Скотт Форсайт - MVP

@ ScottForsyth-MVP Я прислушался к вашему предложению, поскольку хотел, чтобы они были полностью изолированы. Я создал новый пул приложений и новую учетную запись службы и использовал эту статью для настройки личности. Я не знаю почему, но приложение выдает через System.UnauthorizedAccessExceptionнекоторое время, чтобы отобразить страницу; приложение все еще функционирует, но работает медленно и выдает исключение, побуждающее меня открыть Visual Studio. Есть мысли о том, что мне не хватает?
Веб-пользователь

@ ScottForsyth-MVP, не могли бы вы посмотреть на этот вопрос, который я разместил на ServerFault? Спасибо!
Веб-пользователь

@WebUser. Вероятно, ваш пользовательский идентификатор необходимо добавить в группу IIS_WPG. Это было требование в IIS6. Я ответил на ваш другой пост тоже.
Скотт Форсайт - MVP

2

Вы также можете проверить .. Знаете ли вы: Разница между виртуальным каталогом и приложением в IIS 7 / 7.5

Отредактировано: чтобы процитировать сайт, так как ссылка мертва;

В IIS 7 / 7.5 у вас есть возможность создать виртуальный каталог и приложения.

Что такое виртуальный каталог?

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

Image05

Что такое приложение?

Приложение идентично виртуальному каталогу, за исключением того, что у вас есть возможность запустить приложение в другом пуле приложений.

Image06

ПРИМЕЧАНИЕ: так выглядят скриншоты выше в applicationhost.config


0

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

Добавить приложение - это не что иное, как группа файлов, которая доставляет контент или предоставляет услуги по протоколам. Приложение относится к пулу приложений; Предположим, что из-за какой-то проблемы произошел сбой веб-сайта по умолчанию, это не повлияет на приложение, принадлежащее к пулу приложений.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.