In questo articolo viene spiegato il procedimento per la creazione di un’applicazione web in IIS, necessaria per far girare correttamente le applicazioni ASP.NET, e per non avere problemi con il “web.config”.
Il punto di partenza di un’applicazione web ASP.NET è sempre un’applicazione IIS.
Per “applicazione IIS” si intende:
1) la root di un web site
2) una normale subdirectory di un web site, contrassegnata però come “applicazione”
3) una directory virtuale
Tutte queste impostazioni risiedono nel “metabase” di IIS. Lo strumento adatto per modificare tali impostazioni è lo snap-in della MMC (Microsoft Management Console), per l’amministrazione di IIS.
Vediamo quindi come creare, modificare, o eliminare applicazioni dalla console di IIS, nei 3 casi descritti sopra.
La root del Web site…
La root di un web site è di per sé un’applicazione web in IIS. Di un sito web ci sono 3 aspetti fondamentali da considerare, che lo contraddistinguono con precisione dagli altri eventuali siti presenti sulla stessa macchina.
Questi aspetti sono:
- l’indirizzo ip della scheda di rete a cui risponde il sito. Su una stessa macchina infatti è possibile avere più di una scheda di rete con IP diversi. In genere per i siti web “locali” (creati per testare in locale le applicazioni web), si usa l’IP “127.0.0.1”, che è un IP particolare, e che corrisponde sempre all’indirizzo locale del computer.
- l’intestazione host collegata all’ip, che nella maggior parte dei casi corrisponde al nome del dominio associato all’ip stesso (come ad es. www.miodominio.com). Per il sito locale predefinito l’intestazione host è “localhost”.
- la directory fisica a cui punta la root del web site. Si tratta della path fisica del file system in cui andare a posizionare i file (pagine web, immagini, video, ecc.) che si vogliono rendere pubblici tramite il sito web.
All’installazione di IIS viene creato automaticamente un “Default web site” che, come accennato sopra, essendo locale è raggiungibile tramite l’indirizzo IP “127.0.0.1”, e quindi “http://127.0.0.1/pagina1.htm” (se sulla macchina è presente solo un web site è sufficiente specificare solo l’indirizzo IP per raggiungere il sito), oppure tramite “http://localhost/pagina1.htm”. La path fisica predefinita della root del “Default Web Site” è in genere “C:\Inetpub\wwwRoot\”.
Vediamo però come creare un nuovo web site dalla console di IIS (possibile solo su Windows 2000 Server o successivo). Per avviare la console seguire questo procedimento: Start -> Impostazioni -> Pannello di controllo, accedere quindi a “Strumenti di amministrazione”, e ancora “Gestione servizio Internet Microsoft”. Per creare un nuovo web site, selezionare il nome del vostro computer, e quindi clickare “Azione” sulla barra dei menu. Dal menu a tendina selezionare “Nuovo” -> “Sito”.
A questo punto partirà un wizard, in cui vi verranno richieste le impostazioni discusse sopra (indirizzo IP, intestazione host, phisical path, ecc.).
Purtroppo non tutti però hanno la possibilità di creare, sulla propria macchina di sviluppo, più di un web site, in quanto per es. la versione Professional di Windows 2000 non lo permette (è necessaria una versione Server).
Una volta creato un web site, potrete accedere alle sue impostazioni facendo click destro sul nome del sito, e quindi “Proprietà”. In particolare, dalla finestra delle proprietà, è possibile modificare in qualsiasi momento la directory fisica a cui far puntare la root del sito, semplicemente modificando il percorso nell’apposita textbox nel tab “Home Directory”.
Subdirectory del web site contrassegnata come applicazione…
In questo caso si tratta di una normale sotto directory della root di un web site. Facciamo subito un esempio, per capire meglio. Ci troviamo nel seguente scenario:
sito web IIS: Default Web Site
indirizzo IP: 127.0.0.1
intestazione host: localhost (non è necessario specificarla)
home directory: c:\Inetpub\wwwroot (la root del sito web)
Se posizioniamo una pagina web in “c:\Inetpub\wwwroot\default.aspx”, la stessa pagina potrà essere mandata in esecuzione attraverso questo indirizzo: http://localhost/default.aspx .
Se posizioniamo una pagina web in “c:\Inetpub\wwwroot\subfolder\default.aspx”, la pagina sarà visibile tramite: http://localhost/subfolder/default.aspx
Caso A: punto di partenza dell’applicazione ASP.NET sulla root del sito
In questo caso la root dell’applicazione ASP.NET è “c:\Inetpub\wwwroot\”, e sarà lì che andremo a memorizzare il “web.config” contenente le impostazioni dell’applicazione ASP.NET (infatti alcune impostazioni di “web.config”, come ad es. per l’elemento “” o per l’elemento “”, si possono ridefinire solo nel “web.config” che risiede nella root dell’applicazione, in caso contrario si avrà un errore in fase di esecuzione).
Caso B: punto di partenza dell’applicazione ASP.NET su una sottodirectory del sito
Adesso invece vogliamo che il punto di partenza della nostra applicazione diventi “c:\Inetpub\wwwroot\subfolder\”, e poter quindi memorizzare in questa posizione il “web.config” contenente le impostazioni dell’applicazione ASP.NET (sessionState, authentication, ecc.).
Per ottenere ciò dobbiamo agire sul metabase di IIS, ed andare a contrassegnare la sottodirectory del nostro sito come “Applicazione”.
Vediamo come fare. Innanzitutto bisogna visualizzare le proprietà della subfolder, come mostrato nella figura:
Notate che l’icona di “subfolder” è quella di una normale directory.
Nella finestra delle proprietà, nel tab “Directory”, dovrete premere il pulsante “Crea” (evidenziato dal cerchio rosso), come mostrato in figura:
Alla pressione del pulsante si attiverà la textbox indicata dalla freccia rossa, la quale verrà riempita automaticamente con il nome della nuova applicazione IIS che state andando a creare. A questo punto non dovete far altro che premere su “Applica” per salvare le impostazioni, e quindi “OK” per uscire dalla finestra proprietà.
Da questo momento in poi la directory “c:\Inetpub\wwwroot\subfolder\” sarà il punto di partenza di una applicazione ASP.NET, e potrete quindi memorizzare lì il “web.config” con le impostazione dell’applicazione. Se andate a controllare l’icona corrispondente alla directory “subfolder” dalla console di IIS (dopo magari aver fatto un refresh della lista), vedrete che avrà assunto l’aspetto di un “package”, rappresentante appunto un’applicazione.
Directory virtuale…
La directory virtuale è qualcosa di molto simile alla subdirectory del sito, vista sopra. L’unica differenza tra le due sta nel fatto che per la directory virtuale la path fisica può essere totalmente diversa ed indipendente da quella della root del sito web.
Vediamo di capire meglio questo concetto con un semplice esempio.
Ci troviamo nello stesso scenario descritto sopra, e cioè:
sito web IIS: Default Web Site
indirizzo IP: 127.0.0.1
intestazione host: localhost (non è necessario specificarla)
home directory: c:\Inetpub\wwwroot (la root del sito web)
A questo punto vogliamo creare la directory del sito che risponda all’indirizzo http://localhost/subfolder/default.aspx, ma non vogliamo però memorizzare la nostra “default.aspx” sotto la directory “c:\Inetpub\wwwroot\subfolder”, bensì vogliamo che tutti i file della directory virtuale “subfolder”, siano memorizzati nella directory fisica “d:\applicazioni\subfolder”, cioè in una path che non ha nulla a che vedere con quella della home directory del sito web.
Per ottenere ciò, è necessario creare appunto una directory virtuale. Ci sono 2 modi per farlo:
1) da esplora risorse di Windows scegliere la directory fisica sotto cui si vogliono andare a memorizzare i file della directory virtuale (nel nostro caso “d:\applicazioni\subfolder”), e quindi fare click destro su di essa per visualizzarne le proprietà. Nel tab “Condivisione web”, scegliere il sito web su cui si vuole la directory virtuale, e quindi selezionare l’opzione “Condividi cartella”. Vi verrà presentata una mascherina per inserire l’alias della cartella (cioè il nome con cui raggiungerla da web, nel nostro caso, per raggiungerla da http://localhost/subfolder, il nome da assegnare come alias sarà proprio “subfolder”).
2) dalla console di IIS, facendo click destro sul sito web in cui si vuole creare la directory virtuale, e quindi dal menu a tendina clickare su Nuovo -> Directory Virtuale. Da questo momento partirà un wizard in cui vi verranno richiesti la path fisica e l’alias della nuova directory virtuale.
Quando viene creata una directory virtuale, viene automaticamente contrassegnata da IIS come applicazione. Se invece avete già una directory virtuale e volete trasformarla in applicazione, allora sarà necessario seguire la stessa procedura per una normale subdirectory del sito web che abbiamo descritto sopra.
Conclusione… Nel caso in cui si presentassero dei problemi con il “web.config” e con le applicazioni ASP.NET, ricordiamoci sempre di controllare se una directory è contrassegnata come applicazione in IIS.
posted on giovedì 5 maggio 2005 0.46
by
Stefano Giannone