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
Zobaczmy więc jakie WebSites już istnieją na serwerze:
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
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:
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:
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:
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.