Виртуальная папка или виртуальный каталог - это просто ссылка на физическую папку где-то на сервере. Эта папка становится частью структуры сайта, и вы можете использовать виртуальный каталог в части пути URL. Код, который выполняется в виртуальных каталогах, будет выполняться в том же «приложении», что и его родитель.
Приложение - это то, где код, который выполняется внутри этой «папки», имеет свое собственное состояние сеанса и состояние приложения. По сути, это новое отдельное приложение, живущее под корневым приложением.
Например, если вы должны были развернуть приложение ASP.NET на сайте с папкой приложения под названием /myapp
, тогда у этого приложения был бы собственный домен приложения, состояние сеанса, состояние приложения, полностью отделенное от другого ASP.NET. приложение работает в /
. Например: если вы задали значение Application 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 для создания приложения в приложении