Server side includet IIS-palvelimessa

Ns. SSI-toiminto on hyödyllinen apu sivuja rakennettaessa. Se mahdollistaa sivuston koodin jakamisen useampaan tiedostoon. Microsoftin IIS-palvelin tukee SSI:tä, mutta toiminto on oletusarvoisesti kytketty pois päältä. Tässä kerrotaan lyhyesti, miten sen saa päälle. Ohjeet on tehty IIS 5:lle, mutta soveltuvat suoraan myös ainakin IIS 4:aan, jossa tosin valikot olivat hieman eri järjestyksessä.

Heti asennuksen jälkeen IIS tulkitsee oletusarvoisesti SSI-direktiivit ASP- ja SHTML-päätteisistä tiedostoista. Tämä voikin olla jossain tilanteessa tarkoituksenmukaista, mutta usein on hyödyksi kytkeä SSI-tulkkaus päälle myös HTML-tiedostoihin.

Avaa IIS:n service manager ja avaa haluamasi WWW-palvelun ominaisuudet. Siirry Home Directory -välilehdelle.

IIS Managerin Home Directory -välilehti

Klikkaa Application Settings -ryhmän Configuration-nappia oikeasta alakulmasta. Päädyt Application Mappings -ikkunaan.

Application Configuration / App Mappings -välilehti

Listassa näet kaikki johonkin käsittely-DLL:ään kytketyt tiedostopäätteet. Mm. ASP-tiedostot on kytketty oletusarvoisesti ASP.DLL:ään, joka hoitaa ASP-kielen tulkkauksen lisäksi myös SSI-direktiivit. Klikkaa Add-nappia lisätäksesi HTML-päätteen Mappings-listaan.

Add Application Extension Mapping -ruutu

Kirjoita tai selaa Executable-kenttään polku SSINC.DLL:ään, joka sijaitsee samassa hakemistossa muiden IIS:n tulkkikirjastojen kanssa (tyypillisesti C:\WINNT\SYSTEM32\INETSRV\). Kirjoita päätteeksi html ja klikkaa OK. Sulje ikkunat OK:lla, ja homman pitäisi toimia.

Olen kerran törmännyt tilanteeseen, jossa HTML-tiedostojen liittäminen ssinc.dll:ään aiheutti sen, että kaikki sivupyynnöt kilpistyivät käyttöoikeuksien puutteesta herjaavaan virheilmoitukseen. Tämä ratkesi liittämällä HTML-tiedostot ASP.DLL:ään. Syy moiseen ilmiöön ei ole selvinnyt. Jos törmäät vastaavaan ja keksit syyn, ilmoita itsestäsi vaikka sähköpostitse!

Jouni Heikniemi
13.7.2001

Tämä dokumentti kuuluu sivujeni osioon
Kirjalliset tuotokset / Tietotekniikka.