PowerShell i IIS 10: WebApplication

30-paź-2016

WebSites mogą korzystać z tego samego WebApplicationPool lub z różnych, co pozwala zapobiegać między innymi problemom wydajnościowym wynikającym np. z bardzo wysokiej aktywności jednego site w application pool. Application pool nie wystarcza jednak jeśli wysoka aktywność jest generowana przez część site znajdującą się w wybranym folderze lub katalogu wirtualnym. W takim przypadku można tworzyć osobne WebApplication dla wybranego katalogu, które można dalej przypisać do oddzielnego application pool.

Dodatkowo każda z WebApplication ma również swój oddzielny application domain, session state i application state. Z dużym prawdopodobieństwem, jeśli twój site ma hostować komponenty pochodzące od różnych dostawców, to również należałoby je definiować jako odrębne WebApplication, co pozwoli odseparować je od siebie i uniknąć potencjalnych konfliktów.

Oto polecenia pozwalające zarządzać obiektami application:

iis101

Załóżmy więc, że w katalogu site TigerApp znajduje się podfolder Reports i że należy wydzielić dla niego osobny Application Pool. Zaczynamy więc od zdefiniowania nowej application pool (tutaj TigerAppReportsPool). Następnie „awansujemy” folder Reports do rangi aplikacji i przypisujemy ją do application pool TigerAppReportsPool.

iis102

W efekcie można zaobserwować różne rodzaje obiektów znajdujących się w site:

iis103

W podobny sposób jak folder tak do rangi aplikacji można awansować także katalog wirtualny:

iis104

Aplikacje można dodawać nie przechodząc po drodze przez etap tworzenia folderów lub katalogów wirtualnych i ich awansowania do aplikacji. Zakładając, że część plików aplikacji już znajduje się w c:\inetpub\Tiger, to można utworzyć aplikację powiązaną z tym folderem bez tworzenia katalogu wirtualnego:

iis105

Może się również okazać, że aplikacje mają zostać usunięte / zdegradowane do roli folderu lub katalogu wirtualnego:

iis106

Korzystając z „wirtualnych katalogów” w „wirtualnym website” można również zmieniać właściwości aplikacji, np, żeby zmienić obsługiwane przez aplikację protokoły skorzystaj z poleceń:

cd IIS:\Sites\TigerApp
Get-Item -Path .\Admin
Get-ItemProperty iis:\sites\tigerapp\admin | fl * -Force
Set-ItemProperty .\admin -name Protocols -Value 'http'

Jeśli chcesz zrezygnować z tworzenia osobnej Web Application dla site, to należy skorzystać z Remove-WebApplication:

iis107

Niestety, jeżeli WebApplication powstało z WebVirtualDirectory to nie ma prostej metody odwrotu:

iis108

Uwaga: jeśli uprawnienia do katalogu były ustawione bardzo restrykcyjnie (w moich przykładach nawet administrator nie mógł czytać z tego katalogu), to możliwe jest wystąpiene błędu. W takim przypadku należy najpierw nadać administratorowi uprawnienia.

iis109

Komentarze są wyłączone

Autor: Rafał Kraik