Подтвердить что ты не робот

Какая разница между веб-приложением и виртуальной папкой в ​​контексте IIS 7.x?

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

  • Почему существуют два разных типа?

  • Какова цель каждого?

4b9b3361

Ответ 1

Виртуальная папка или виртуальный каталог - это просто ссылка на физическую папку где-то на сервере. Эта папка становится частью структуры веб-сайта, и вы можете использовать виртуальный каталог в части пути URL-адресов. Код, который выполняется в виртуальных каталогах, будет выполняться в том же "приложении", что и он.

Приложение, где код, который работает внутри этой "папки", имеет собственное состояние сеанса и состояние приложения. Это, по сути, новое автономное приложение, находящееся под корневым приложением.

Например, если вы хотите развернуть приложение ASP.NET на сайте с папкой приложения с именем /myapp, тогда у этого приложения будет свой собственный домен приложения, состояние сеанса, состояние приложения полностью отделено от другого ASP.NET приложение работает в /. Например: если вы установили значение приложения Application["Thing"] = 123 в корневое приложение, а затем сделали то же самое, но с другим значением в /myapp, то Application["Thing"] в корне не будет перезаписано присваиванием в /myapp.

Еще одна вещь, которую вы можете сделать с помощью приложения - указать другой пул приложений для запуска. Например, ваше корневое приложение / может содержать приложение ASP.NET 2.0 и запускаться в пуле, настроенном для .NET 2.0. Однако вы можете запустить приложение для блога или форума, написанное в ASP.NET 4.0. Теперь, поскольку вы не можете смешивать версии среды ASP.NET в одном пуле приложений, вы можете указать альтернативный пул приложений специально для приложений ASP.NET 4.0.

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

Если вас интересует основная механика виртуальных каталогов и приложений на IIS7, взгляните на этот ответ, который я опубликовал некоторое время назад:

Использование ServerManager для создания приложения в приложении

Ответ 2

Чтобы добавить информационную информацию о том, что Kev очень хорошо упомянул - все виртуальные каталоги по умолчанию запускаются в заранее определенном пуле приложений с именем DefaultAppPool. DefaultAppPool появляется по умолчанию с IIS, когда вы включаете эту функцию в Windows. Для WebApps вы всегда можете создавать свежие/новые appPools и запускать ваш webApp внутри вашего недавно созданного appPool. Эти appPools предоставляют вам физическое/отдельное пространство процесса (в форме рабочих процессов), с помощью которого IIS может предоставлять услуги, такие как состояние сеанса, состояние приложения и т.д. В силосах, в webApp, когда он имеет свой собственный appPool. Всякий раз, когда ваш webApp appPool вылетает из строя, другие webApps (используя собственный пользовательский appPool) или виртуальные каталоги (используя DefaultAppPool appPool) остаются полностью незатронутыми.