Sviluppo su Vista e deploy su Windows 2003

Come (felicemente o infelicemente – ndr) alcuni sviluppatori ASP.Net avranno avuto modo di vedere dopo il rilascio di Vista, un nuovo engine IIS è stato introdotto nelle trame del sistema operativo.

Un IIS più aggiornato, più efficiente, più tutto e addirittura in anteprima (quando ovviamente usci) rispetto all’IIS che ad oggi è disponibile per Windows 2008.

Il post in questione non si vuole porre come un decalogo delle novità del nuovo IIS, che magari farò in un secondo momento (se avrò tempo), piuttosto su di un aspetto che in molti casi sarà inevitabile.

Se infatti avete deciso di passare a Windows Vista, ma il vostro hoster (spero ancora per poco – ndr) non supporta ancora Windows 2008, il problema inevitabile – qualora all’interno del vostro progetto avete utilizzato gli handler e i modules – è la differente gestione della pipeline che il nuovo IIS ha rispetto al vecchio web server.

Differenze che oggi unificano la pipeline di IIS e ASP.Net rispetto al passato dove erano distinte.

Questo significa anche dover apportare dei cambiamenti nel file web.config affinchè le applicazioni possano correttamente girare sul nuovo server Web.

Con un esempio:

<system.web>
    <httpModules>
        <add name="..." type="..." />
    </httpModules>
    <httpHandlers>
        <add verb="...." path="..." type="..." />
    </httpHandlers>
</system.web>
 

 

Queste sopra è un abstract del web.config per una applicazione IIS6 che va trasformato come segue per funzionare in IIS7.

 

 

<system.webServer>
    <modules>
        <add name="..." type="..." />
    </modules>
    <handlers accessPolicy="Read, Write, Script, Execute">
        <add verb="...." name="..." path="..." type="..." />
    </handlers>
</system.webServer>

 

Da notare che in IIS 7 ogni handler deve avere un nome; non specificarlo equivale a generare un errore in fase di esecuzione. Altra cosa – importante ma opzionale – è quella di poter definire un attributo accessPolicy.

 

Ma veniamo al punto cruciale, quello per il quale ho scritto il post. E se sto lavorando con Vista, ma devo fare il deploy su un vecchio Windows 2003? Devo cambiare ogni volta la configurazione?

La risposta è no. Si può agire in due modi, quello maccheronico e del disinformato: commentare la sezione, ma non è propriamente una soluzione definitiva, oppure quella di far ricorso ad un parametro che indica ad IIS7 di non verificare la presenza dei vecchi parametri di configurazione, quelli cioè per far girare IIS7 nel cosiddetto Classic Mode e non come di default con la Integrated Security.

 

Per tutti coloro i quali vogliono approfondire su IIS 7, segnalo infine un paio di siti che dovrebbero  essere sempre nei bookmark:

 

 

 

Technorati Tags: ,,