PowerShell i IIS 03: WebSites

29-paź-2016

Podstawowym elementem konfiguracyjnym serwera IIS jest site. Z jednej strony definiuje on fizyczne położenie plików na dysku, z drugiej określa jak do aplikacji opartej na tych plikach można się połączyć.

Aby „odkryć” polecenia pozwalające modyfikować WebSites zacznij od komendy:

Get-Command -Noun WebSite

iis031

Zobaczmy więc jakie WebSites już istnieją na serwerze:

iis032

W tym przypadku na serwerze jest obecny Default Web Site oraz dwa site powiązane z tzw. DesiredStateConfiguration.

Do utworzenia nowego site można skorzystać z polecenia New-WebSite

iis033

Dwa obowiązkowe parametry tego polecenia to name wskazujące na nazwę site oraz physical path wskazujący na katalog w którym będą przechowywane pliki tego site.

Jak widać, świeżo utworzony site jest na razie zatrzymany. Aby uruchomić WebSite skorzystaj z polecenia Start-WebSite. Można to zrobić na dwa sposoby: przekazać o który WebSite chodzi w parametrze Name albo przekazać obiekt site do tego polecenia potokiem. Obie metody są dobre i … żadna z nich nie zadziałała:

iis034

Komunikat „Start-Website: Cannot create a filename when that file already exists” mówi wprawdzie o utworzeniu pliku o nazwie, która jest już wykorzystywana, ale tak naprawdę chodzi o to, że na serwerze istnieje już site, który próbuje dołączyć się do portu 80 i protokołu http. Takie zdublowane site również łatwo można odnaleźć metodami PowerShell:

iis035

Jeszcze wyraźniej można to zobaczyć kiedy odfiltruje się tylko WebSite bindujące do protokołu http i portu 80. Zauważ nieco dziwne odwołanie do właściwości protocol i port. Znajdują się one we właściwości Binding, w Collection:

iis036

Można by w tym momencie zatrzymać Default Web Site korzystając z polecenia Stop-WebSite wskazując parametrem Name na nazwę site. Można jednak także po prostu zmienić port dla nowo utworzonego site. Trzeba się tu posłużyć poleceniem Set-WebBinding. Tutaj należy wskazać na nazwę site, Binding, które ma być zmienione (bo przecież jeden site może bindować do wielu portów i protokołów), wskazać na właściwość, która ma się zmienić (tu port) i w parametrze value wskazać nową wartość portu. Po wykonaniu tych czynności site można już uruchomić a następnie sprawdzić jego stan.

iis037

Komentarze są wyłączone

Autor: Rafał Kraik