Configurare IIS

In questo articolo viene spiegato come impostare la configurazione di IIS: creare un nuovo sito, creare cartelle virtuali, rendere accessibile un sito web di test da altri pc e dispositivi della stessa rete.

Non pretendo di fornire una documentazione dettagliata applicabile a un ambiente di sviluppo professionale, ma semplicemente spiego come potersi creare un ambiente di test per essere operativi rapidamente.

La cartella predefinita di IIS nella quale creare i siti è C:\inetpub\wwwroot. E' consigliabile creare una sottocartella per ogni sito, ad esempio C:\inetpub\wwwroot\dev-oclock. In questo modo il sito è accessibile all'indirizzo http://127.0.0.1/dev-oclock oppure http://localhost/dev-oclock. Se siamo in una rete lan, è accessibile dagli altri pc sostituento 127.0.0.1 con l'indirizzo ip o con l'host name della macchina (ovviamente per consentire l'accesso è necessario impostare i permessi).

Creare una Directory virtuale su IIS

Spesso il sito su cui stiamo lavorando localmente si trova all'interno di una cartella come ad esempio la cartella dei progetti di Dreamweaver o di Visual Studio, e ci sarebbe scomodo spostarla sotto wwwroot. In questi casi conviene creare una directory virtuale su IIS

IIS >> Tasto destro su Sito Web Predefinito >> Aggiungi Directory virtuale >> Digitare l'alias >> Selezionare il percorso fisico

Per richiamare la cartella appena creata, sarà sufficiente collegarsi all'URL http://127.0.0.1/dev-oclock-local

Configurare un nuovo sito su IIS

Un'altra soluzione consiste nel creare un nuovo sito su IIS:

IIS >> Espandere l'albero fino a Sites >> Tasto destro su Sites >> Add a Web Site >> selezionare il percorso fisico sul file system >> binding: porta as es. 88

Il sito così creato sarà raggiungibile via browser all'indirizzo: http://127.0.0.1:88/ Questo indirizzo in realtà dipende dai parametri impostati nella sezione Bindings. Per questo esempio ho impostato IP 127.0.0.1 e porta 88.

Un vantaggio del creare un nuovo sito su IIS è che così in questo modo nel progetto si può impostare "/" come Virtual path, e sfruttare la comodità di fare iniziare tutti gli URL con / (oppure ~ per i controlli lato server).
Inoltre si ha un altro sito ben definito su IIS, che opera su un'altra porta.

Permettere l'accesso al sito web da altri pc della stessa rete

Per default non è possibile accedere via browser ai siti presenti in una macchina server. Provando a digitare l'indirizzo si ottiene errore di pagina non trovata. Questo a causa delle restrizioni di sicurezza impostate sul sistema.

Aprire una shell di Dos come amministratore:

 Start >> Programmi >> Accessori >> Tasto destro su Command Prompt >> Run as Administrator >> Se richiesto inserire le credenziali

Lanciare uno alla volta questi due comandi per dire al sistema e al Firewall di accettare le richieste. Attenzione a impostare gli indirizzi IP e le porte corrette a seconda di come le avete impostate nei siti su IIS. Se ci sono più siti da impostare, ovviamente è necessario lanciare i comandi più volte. L'asterisco è il carattere jolly.

Con questo comando ad esempio si dice al http.sys di accettare richieste di ogni indirizzo ip sulla porta 80:

netsh http add urlacl url=http://*:80/ user=everyone

Così invece si aggiunge una regola nel firewall di Windows affinché accetti richieste di connessione tcp alla porta 80 dai dispositivi nella stessa rete:

netsh advfirewall firewall add rule name="IISAccess" dir=in protocol=tcp localport=80 profile=private remoteip=localsubnet action=allow

Per fare un test ho provato con uno smartphone Android collegato via wi-fi alla stessa rete del pc-server ip: 192.168.0.100 sul quale gira IIS:

File di configurazione

Dalla versione 7 in poi IIS conserva le configurazioni globali su una gerarchia di file xml, tra cui i più importanti sono  machine.config e ApplicationHost.config.

Le impostazioni relative ai singoli siti web invece sono memorizzate nei vari file web.config di ogni sito: uno sulla cartella root per le impostazioni valide su tutto il sito, altri nelle varie sottocartelle dove necessario.
Questi file posso essere editati direttamente a mano da Visual Studio oppure in modo visuale dal pannello di IIS o da uno strumento chiamato Web Site Administration Tool (WSAT).

Nella sezione link troverete altri siti dove approfondire l'argomento, e in futuro scriverò altri articoli in merito.

Autore: Sergio Roberto Boarina