Ответ 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 для создания приложения в приложении