2011-03-31 14 views
46

Wdrażając moją stronę internetową, stwierdziłem, że mogę przekonwertować folder na wirtualny folder lub aplikację internetową, jestem całkowicie zdezorientowany tymi 2 koncepcjami.Jaka jest różnica między aplikacją sieci Web a folderem wirtualnym w kontekście usług IIS 7.x?

  • Dlaczego istnieją dwa różne typy?

  • Jaki jest cel każdego z nich?

+2

Duplikat http://stackoverflow.com/q/1002981/80161 –

+0

Niedawno zmieniłem na Tomcat. Stwierdziłem, że jest to mniej koncepcja i bardziej przejrzysty model wdrażania. – smwikipedia

Odpowiedz

76

Folder wirtualny lub katalog wirtualny to po prostu łącze do folderu fizycznego gdzieś na serwerze. Ten folder staje się częścią struktury witryny i możesz użyć katalogu wirtualnego w części ścieżki adresów URL. Kod wykonywany w katalogach wirtualnych będzie wykonywany w tej samej "aplikacji", co nadrzędnej.

Aplikacja to miejsce, w którym kod uruchamiany wewnątrz tego "folderu" ma własny stan sesji i stan aplikacji. Jest to w rzeczywistości nowa samodzielna aplikacja żyjąca pod aplikacją root.

Na przykład, jeśli użytkownik wdroży aplikację ASP.NET w lokacji, która ma folder aplikacji o nazwie /myapp, wówczas ta aplikacja będzie miała własną domenę aplikacji, stan sesji, stan aplikacji całkowicie oddzielony od innej aplikacji ASP.NET działa w /. Na przykład: jeśli ustawisz wartość aplikacji Application["Thing"] = 123 w aplikacji root, a następnie zrobisz to samo, ale z inną wartością w /myapp, wtedy Application["Thing"] w katalogu głównym nie zostanie nadpisane przez przypisanie w /myapp.

Inną rzeczą, którą można zrobić z aplikacjami, jest określenie innej puli aplikacji, która ma działać. Na przykład aplikacja root może zawierać aplikację ASP.NET 2.0 i działać w puli skonfigurowanej dla platformy .NET 2.0. Możesz jednak uruchomić blog lub aplikację forum napisaną w ASP.NET 4.0. Teraz, ponieważ nie można łączyć wersji środowiska wykonawczego ASP.NET w tej samej puli aplikacji, można określić alternatywną pulę aplikacji specjalnie dla aplikacji ASP.NET 4.0.

Aplikacje mogą również zachowywać się jak katalogi wirtualne i można wskazać folder aplikacji w folderze fizycznym w innym miejscu na serwerze.

Jeśli jesteś zainteresowany w mechanice bazowych katalogów wirtualnych i aplikacji na IIS7 następnie przyjrzeć się tej odpowiedzi napisałem jakiś czas temu:

Using ServerManager to create Application within Application

1

Aby dodać informacyjny szczegóły na temat tego, o czym wspaniale wspominał Kev - Wszystkie katalogi wirtualne domyślnie działają pod predefiniowaną pulą aplikacji o nazwie DefaultAppPool. DefaultAppPool przychodzi domyślnie z usługami IIS po włączeniu tej funkcji w oknach. W przypadku WebApps zawsze możesz tworzyć nowe/nowe aplikacje i uruchamiać swoją webApp w nowo utworzonym pakiecie appPool. Te appPools zapewniają fizyczną/oddzielną przestrzeń procesową (w postaci procesów roboczych), przy pomocy której usługi IIS mogą dostarczać usługi, takie jak stan sesji, stan aplikacji itp. W silosach do interfejsu WWW, gdy ma on zdefiniowany własny pakiet aplikacji. Za każdym razem, gdy wystąpi awaria AppPool witryny sieci Web, pozostałe funkcje WebApps (przy użyciu własnych niestandardowych aplikacji appPool) lub katalogów wirtualnych (przy użyciu aplikacji DefaultAppPool appPool) pozostają całkowicie niezmienione.

Powiązane problemy