Il Servizio FTP di IIS 5.0

Il Servizio FTP si implementa attraverso due diverse tipologie di collegamento:
Il primo collegamento prende il nome di Control Connection, questo rimane sempre attivo durante la sessione FTP e viene utilizzato dal Client per inviare comandi al Server.
La Control Connection è una connessione di tipo Telnet effettuata dal Client sulla porta TCP 21 del Server (se non diversamente specificato).
Il Client durante questa connessione invia comandi al Server e riceve da questo risposte sulla sua porta TCP (es. 1591 o altro assegnata in modo casuale e comunque sempre superiore a 1024).
Altro discorso vale per il secondo tipo di collegamento denominato Data Connection.
Questa connessione viene iniziata dal Server su richiesta del Client nel momento in cui deve ricevere o spedire dati ad esempio quando lo User Protocol Interpreter invia un comando LIST,GET o PUT, pertanto non è sempre attiva.
Qui le cose si complicano un po', una volta stabilita la prima connessione (Control Connection) il Client si mette subito in ascolto sulla stessa porta (modalità FTP nota con il termine  di default ), il Server ricevuto il comando appropriato inizia a trasmettere/ricevere dati (Data Connection) utilizzando la propria porta TCP di default che è ottenuta dalla porta TCP della Control Connection meno uno (es. se il Server Protocol Interpreter utilizza la porta TCP 21, il Server Data Transfer Process utilizzerà la porta 20).
Riassumendo la Data Connection utilizza per il Client Data Transfer Process la stessa porta TCP utilizzata dallo User Protocol Interpreter, mentre per il Server Data Transfer Process utilizza la prima porta TCP adiacente a quella utilizzata dal Server Protocol Interpreter.
In qualsiasi momento il Client può modificare le porte TCP della Data Connection (modalità FTP nota con il termine non di default) attraverso l'utilizzo dei comandi PORT e PASV.
Così facendo lo User Protocol Interpreter attraverso il comando PORT comunica al Server una diversa porta TCP (diversa dalla modalità di default) che utilizzerà per la Data Connection.
Nello stesso modo lo User Protocol Interpreter attraverso il comando PASV si farà comunicare dal Server una diversa porta TCP per la Data Connection.
In sintesi i comandi PORT e PASV hanno il solo obiettivo di modificare le porte TCP della Data Connection rispetto a quelle usate di default.
Questi comandi potrebbero risultare utili per modificare la direzione della Data Connection in presenza di un Firewall che blocca l'utilizzo delle porte TCP lato Client (comando PASV), oppure per cominciare una sessione FTP Server to Server, in quest'ultimo caso il Client comunica al Server attraverso il comando PORT non solo una diversa porta TCP, ma anche un diverso IP di destinazione della Data Connection.
Con il servizio FTP di IIS 5.0 è possibile utilizzare il comando PORT solo se inviato al Server specificando nel comando lo stesso indirizzo IP del Client che ha cominciato la Control Connection., questo per evitare che il Server possa venire utilizzato per effettuare connessioni non autorizzate con altri Server, non solo con il comando PORT non possono essere comunicati valori per la porta TCP inferiore a 1024. Per abilitare (sconsigliato) l'utilizzo del comando PORT nelle sessioni FTP "Server to Server" modificare il valore della seguente chiave nel registro EnablePort Attack=1 presente in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service\MSFTPSVC.
Qui di seguito un esempio su come viene amministrata dal Client e dal Server una sessione FTP.
Un programma Client-FTP gestisce internamente le due connessioni, all'utente è visibile solo la  User Interface.
In questo esempio le connessioni saranno esaminate in modo separato:
La prima connessione Control Connection viene attivata attraverso un Client di tipo Telnet, ad esempio:
Telnet 192.168.1.1 21
La risposta del Server è sempre preceduta da un numero (codice di risposta)
220 <NomeComputer> Microsoft FTP Service (Versione 5.0).
A questo punto vengono inviati dal client il nome utente e la password con i seguenti comandi:
USER <NomeUtente>
331 Password required for <NomeUtente>
PASS <Password>
230 Testo del messaggio di benvenuto
230 User <NomeUtente> logged in.
Durante questa fase vengono effettuati tutta una serie di controlli sia da parte di IIS che dal file system NTFS nel seguente ordine:

Una volta autenticato la Control Connection rimane attiva ed utilizzata dal Client per inviare comandi al Server.
Eseguendo il comando netstat -a dal prompt dei comandi sia sul Client che sul Server vengono visualizzate tutte le connessioni TCP non chiuse.
Sul Client risultano due connessioni TCP sulla stessa porta una con stato Established, significa che la connessione è attiva (è la Control Connection), e l'altra con lo stato Listening (in ascolto), significa che il Client è pronto per accettare una connessione su questa porta, notare che le porte TCP utilizzate dal Client sia per la Control Connection che per la Data Connection sono le stesse (modalità di default).
Sul Server risulta una connessione TCP con lo stato Established sulla porta FTP (21).
A questo punto dalla stessa sessione Telnet utilizzata per la Control Connection possiamo inviare al Server un comando LIST (elenco dei file e delle direttori). Il risultato di questo comando sarà quello di ricevere come risposta un errore dal Server del tipo "impossibile aprire la Data Connection".
Come detto in precedenza le connessioni FTP sono due la Data Connection può essere stabilità solo se sul Client esiste un "Server TCP" pronto a stabilire temporaneamente la connessione dati iniziata dal Server, un programma Client FTP gestisce al suo interno entrambe le connessioni, la prima attraverso un Client Telnet, la seconda attraverso un Server TCP.
Strano ma vero, i ruoli tra Client e Server in un certo senso vengono invertiti nella Data Connection così che il Client si comporta come il Server stando in ascolto sulla propria porta TCP.
Due eccezioni a questa regola provengono dall'utilizzo dei comandi PORT e PASV.
Il comando PORT sposta la Data Connection su una porta TCP lato Client diversa da quella di default.
Il comando PASV sposta la Data Connection su una porta TCP lato Server diversa da quella di default, questo comando ha anche l'effetto di porre il Server in ascolto su questa porta concedendo così al Client la possibilità di iniziare lui stesso la Data Connection. Quest'ultima modalità è nota anche con il termine di FTP Passivo.


IIS 6.0 : potenza , sicurezza e scalabilità.
Che Microsoft stia puntando tutto sul web lo si è capito gia' da tempo con il rilascio della nuova piattaforma .NET , insieme di prodotti (ambienti di Sviluppo . sistemi operativi , rdbms ...) che danno il meglio di se' attraverso la loro integrazione e attraverso il web sfruttando la potenza dell'' XML e dei Web Services.
Ed è in questa direzione che Microsoft ha spinto moltissimo con il rilascio qualche mese fa' del nuovo sistema operativo Windows 2003 aggiungendo una nuova versione server : Windows 2003 Web Edition , versione light che comprende solo funzionalità web compreso la nuova versione di IIS e proposto agli ISP con un costo di molto inferiore rispetto alle altre versioni commercializzate. (Windows 2003 Standard Edition , Enterprise Edition , Datacenter Edition)
Molte novità sono state introdotte in questa major release a partire dalla sicurezza che è stata fortemente migliorata, ai nuovi servizi disponibili come ad esempio i servizi di POP3, ma la vera novità è rappresentata dalla nuova versione del server web di Microsoft : IIS 6.0 quasi interamente riscritto per supportare le nuove esigenze de FrameWork .NET.
Le novità che subito saltano agli occhi sono che IIS 6.0 non è installato in bundle con il sistema operativo (deve essere esplicitamente installato) e che le funzionalità ASP sono disattivate.
Dopo l'installazione , IIS 6.0 parte in una modalità "tutto disabilitato" , ovvero la stessa modalità di IIS 5.0 dopo l'applicazione del "Lockdown Tool".
Il nuovo Web Server di Microsoft puo' girare in due modalità : IIS 5.0 Isolation Mode (per garantire la compatibilità con le vecchie applicazioni) e WorkerProcess isolation mode (modalità di default).
Nella prima modalità IIS si comporta in maniera simile ad IIS 5.0 di Windows 2000 , ovvero le applicazioni in-process (DLL , ISAPI Filter) continuano a girare nel processo inetinfo.exe mentre quelle out-of-process (eseguibili EXE , componenti COM+ , ISAPI Extensions) in un processo separato chiamato DLLHOST.EXE.
Questa modalità viene mantenuta solo per compatibilità con le vecchie applicazioni scritte per IIS 5.0.
Ma la vera potenza di IIS 6.0 , sia in termini di prestazioni che di sicurezza , si ottiene quando il web server gira in modalita' WorkerProcess.
Il nuovo IIS prevede un accodamento delle richieste a livello kernel: questo comporta l'esecuzione di ogni applicazione in un ambiente isolato, quello che Microsoft chiama WorkerProcess isolation mode e l'assegnazione di un pool di applicazioni (Application Pools) a singole aree di lavoro del processore.
Un Application Pools puo' essere definito come un insieme di applicazioni web che condividono uno o piu' WorkerProcess.
Nella modalità WorkerProcess isolation mode tutte le risorse di ogni Application Pool vengono fisicamente separate in memoria in diversi WorkerProcess di modo che un crash anche di un solo sito/web application non comporti il blocco totale degli altri siti.
Come già anticipato precedentemente il nuovo web server accoda le richieste a livello kernel , tutto questo tramite un nuovo driver / listner : HTTP.sys.
Il nuovo driver kernel HTTP.sys (che sostituisce il vecchio inetinfo.exe) si mette in ascolto delle richieste provenienti dall' esterno e le smista a code , ognuna delle quali corrisponde ad un Application Pool ,in questo modo è stato totalmente abbandonato il vecchio concetto di in-process molto meno sicuro e poco performante.
A questo punto sara' compito degli amministratori raggruppare differenti applicazioni web in diversi Application Pools.
Altra importante novità è il componente WWW Service Administration and Monitoring, questo componente infatti si occupa di monitorare i WorkerProcess effettuando un keep-alive ad intervalli periodici e in caso di malfunzionamento si preoccupa di deallocare e riallocare un nuovo WorkerProcess loggando l'operazione nell' Event Viewer di Windows.
E' la sicurezza ?!?
Un occhio particolare è stato riservato alla sicurezza del web-server, infatti dopo l'installazione pura e semplice , IIS puo' solo eseguire contenuti statici e non pagine ASP , questa funzionalità va attivata aggiungendo alla lista delle Web Service Extensions l'estensione .asp.(fig. 1)
Altro aspetto importante sempre legato alla sicurezza è che i processi degli utenti (WorkerProcess) vengono eseguiti con i permessi di NetworkService, un nuovo account predefinito con privilegi molto ridotti ; le richieste di pagine con estensione sconosciuta non vengono passati ad un handler (tipicamente un estensione ISAPI) e quindi vengono respinte.
Inoltre per rendere la vita un po' più difficile agli hacker attacchi di tipo Web Defacement , in cui viene sostituita l'home page di un sito saranno più difficili visto che l'utente Anonymous non puo' sovrascrivere i contenuti di un sito. Esecuzione di tools da riga di comando attraverso il Web Server non sono più possibili .
Ora IIS integra l'autenticazione con PassPort con cui si puo' effettuare un mapping tra l'utente Passport ed un utente Active Directory.
Microsoft ha inoltre dichiarato che il supporto SSL è stato migliorato di circa il 50%

Fig. 1
Il Metabase e il Logging.
Il vecchio concetto di Metabase che salva la configurazione di IIS in un file binario è stato totalmente rivisto ; infatti il nuovo Metabase è in formato XML editabile anche quando IIS è in esecuzione e con qualsiasi editor , le configurazioni inoltre sono esportabili su altri Web Server.
Il database XML si trova nella cartella Inetsrv sotto la directory %SYSTEMROOT%\System mentre l' history di tutte le modifiche apportate è salvata di volta in volta in una cartella history.
Il nuovo IIS 6.0 mantiene la modalità di logging del suo predecessore ma in piu' implementa una nuova (Centralized Binary Logging) che scrive i log in formato binario (.ibl) ed la lettura è possibile tramite un tool del Resource Kit di IIS.
La gestione è centralizzata perche' viene creato un unico file di log in cui vengono scritte tutte le richieste provenienti da tutti i siti web.
Gestione de Web Server - Scalabilità
La gestione del nuovo Web Server è possibile tramite WMI (Windows Management Instrumentation) e altri script (IISConfig , IISWeb , IISFtp) che permettono di automatizzare le operazioni piu' comuni come la gestione di siti Web e FTP , il backup e restore della configurazione.
Microsoft introduce un nuovo concetto di scalabilità : Web Gardens.
Si tratta in effetti di un cluster virtuale , un insieme di WorkerProcess equivalenti che condividono la coda delle richieste normalmente assegnata ad un unico WorkerProcess , permettendo cosi' uno sfruttamento ottimale dei sistemi multiprocessore.
Concludendo , il prodotto è sensibilmente migliorato in termini di performance , scalabilità e sicurezza , i benchmark effettuati da Microsoft parlano di un incremento del troughput pari ad almeno il 50% , non ci resta che provarlo.


IIS6.0 : Teoria & Configurazione
Eccoci "al dunque"...ovvero...come far funzionare al meglio il nostro Server Web... o anche più semplicemente come fare per mettere in piedi un Sito Web ad utilizzo personale e che magari dovrà essere pubblicato su Internet.
Proprio così ... ci occuperemo di descrivere, in breve, le caratteristiche di IIS (Internet Information Service) e , successivamente, di mettere in piedi le 2 configurazioni "standard" , ovvero quella per disporre di un Sito Web richiamabile dalla propria LAN (o PC) e quella relativa alla configurazione di un Sito Web richiamabile direttamente da Internet, esposto proprio dalla nostra macchina.
Cominciamo ... perchè proprio IIS 6.0 e non il 5.2 (quello di XP , tanto per capirci)... Perchè IIS 6.0 è notevolmente più avanzato del 5.1 e presenta della caratteristiche veramente particolari, nonchè comode.
IIS 6 fa parte del Sistema Operativo Windows Server 2003 e non è possibile la sua installazione su macchine Windows XP.
Dicevamo che IIS è il prodotto di Microsoft per fornire Servizi Web verso la Rete Internet e come altri prodotti (Apache) è in grado di supportare i protocolli a livello applicazione.
Ma quali sono questi protocolli ? Presto detto :
# HTTP : definisce un protocollo di tipo client/server e descrive come avviene la comunicazione tra il server HTTP (Server Web) e i client HTTP (Browser Web). Tutti i Server Web si basano su HTTP...da qui l' importanza di questo protocollo.
# FTP : definisce un protocollo di tipo client/server e descrive come avviene la comunicazione tra il server FTP e il client FTP. Utilizzabile se si vogliono trasferire files in ambito Internet.
# SMTP : alla base del sistema di posta elettronica di Internet. Tal eprotocollo è contemporaneamente Client/Server e Server/Server
# NNTP : un protocollo Client/Server e Server/Server che definisce le modalità con cui un client NNTPsi collega ad un Server NNTP per la lettura delle NEWSGROUP
IIS , poi, supporta anche altri protocolli, anche se definiti di "minore importanza".
Tali protocolli sono :
# SSL3 : Secure Socket Layer 3 utilizzato per crittografare sessioni HTTP -> NNTP
# TLS : Transport Layer Security utilizzato per crittografare sessioni SMTP
# LDAP : Lightweight Directory Access Protocol utilizzato per accedere alle informazioni di un servizio directory
# MIME : Multipurpose Internet Mail Extensions utilizzato dal servizio HTTP oer comunicare formati di file validi per i client HTTP
Bene , abbiamo appena fatto una panoramica sui servizi supportati da IIS ... Prima però di passare alle 2 configurazioni conviene soffermarci un attimino su di una importantissima caratteristica nonchè innovazione di IIS 6 rispetto alle precedenti versioni.
Il Team di sviluppo di IIS 6 ha fatto un lavoro "grandissimo" riscrivendo quasi completamente il "motore" del Server Web per arrivare ad ottenere dei risultati finalmente molto soddisfacenti dal punto di vista della Sicurezza e della Continuità di Servizio
E a questo punto entrano in gioco gli Application Pool
Ovvero , la trovata di Microsoft per risolvere le problematiche relative all' Isolamento del processo Web e alla Sicurezza di tutti gli altri Processi che sono in esecuzione sul Servente Web.
Gli Application Pool sono completamente configurabili in quanto è possibile stabilire la quantità di memoria a disposizione del Processo prima che questo venga riciclato , cioè ucciso e istanziato nuovamente, la percentuale di utilizzo di CPU o il tempo massimo che il Processo deve durate o anche il numero massimo di sessioni da esaudire.
Abbiamo parlato di riciclaggio : perchè riciclaggio....perchè non c'è assolutamente bisogno che IIS venga terminato e rilanciato per fare tutto questo...sarà lui stesso, in modo totalmente automatico a gestire questa modalità , SENZA nessun intervento esterno...
Vedremo meglio queste possibilità nella 2° configurazione (quella un po' più complicata)
Detto questo , di seguito , abbiamo le 2 configurazioni :
# Configurazione Sito Web su proprio PC
# Configurazione Sito Web per pubblicazioni Internet
Ecco lo scenario di riferimento :
Installazione di un Forum PHPBB2 sulla macchina PC1 e configurazione dell' IIS in modo che tale Forum sia richiamabile digitando il seg. URL nella barra dei comandi dell' Explorer (o suo equivalente) sempre di PC1 : http://localhost/ForumProva
Ecco lo schema (Il PC1 è quello con il "mondo" ... gli altri sono eventuali Client della LAN)

Per prima cosa scarichiamo il nostro bel Forum PHPBB2 , per esempio, da Supporto Italiano al PHPBB2 e lo Unzippiamo in una cartella del nostro disco fisso chiamata, per esempio, Forum (E:\Forum).
Quello che sarà creato p una nuova directory PHPBB2 contenente tutti i files del Forum che vogliamo installare. A questo punto iniziamo a settare il "mitico" IIS6.
Apriamo la Consolle di gestione e comparirà una schermata come questa :

Ci portiamo sulla scheda Default Web Site , tasto destro del mouse , New Virtual Directory. Come indicato in Figura :

A questo punto si apre un Wizard di configurazione. Per prima cosa dovremo inserire il nome della Directory Web.
Nel nostro caso ForumProva . Come indicato in figura :

Successivamente inserire il Path "fisico" della directory, ovvero dove si trovano effettivamente su disco i files che compongono il Forum. Come indicato in questa figura :

Premendo ancora Next si arriva ad una schermata che consente di impostare le "permission" che vogliamo dare alla nostra Virtual Directory , ovvero Directory Virtuale, in quanto esiste solo nel contesto di riferimento di IIS6. Per il momento lasciamo il Default, cioè READ. Come in questa figura :

Premendo ancora NEXT il Wizard di creazione di Virtual Directory ci informa che il setup iniziale è finito. Ma in realtà non abbiamo ancora finito di impostare il nostro Sito....
A questo punto ciò che si presenta è visibile in figura : abbiamo la nostra Virtual Directory ForumProva creata :

A questo punto , tasto destro del mouse sulla Virtual Directory ForumProva e clicchiamo su Proprietà.
Si apre una schermata come questa :

Lasciamo tutto invariato, tranne il fatto che andiamo ad impostare nella scheda Execute Permission Scripts Only , cioè diamo la possibilità di eseguire su quella Virtual Directory degli Script.
Andiamo sulla seconda scheda Documents e aggiungiamo la pagina Index.php.
Perchè facciamo questo ? Semplicemente perchè la Index.php è la pagina di default del Forum...settando così la Virtual Directory stiamo dicendo ad IIS6 che la quando apriremo il sito SENZA impostare una pagina, la Index.php sarà quella che IIS6 farà partire di default...tutto chiaro..no ?

A questo punto non ci resta che premere Apply e poi OK per configurare "a modino" il nostro IIS6 Per vedere il "risultato" di questa configurazione , non rimane altro che aprire un Browser e scrivere nella barra degli indirizzi
http://Localhost/ForumProva e il risultato sarà il seguente :

In questo esempio il Forum era già stato installato...seguire le istruzioni per l'installazione del Forum presenti nell' URL indicato per il Download.
Un' ultima raccomandazione : impostate i permessi di scrittura sulla cartella contenente il Database per l' Utente Internet, cioè IUSR_nomemacchina dove nomemacchina è il nome del Vostro PC ....

Dunque, andiamo ad iniziare.
Lo scenario di riferimento è quello prospettato in figura, cioè vogliamo configurare con IIS un Sito Web che abbia la possibilità di essere "visto" anche dall' esterno , ovvero da Internet, utilizzando al meglio le nuove caratteristiche di IIS6 , tipo gli Application Pool.
Per fare questo censiremo un nuovo Sito Web all' interno di IIS che chiameremo , casualmente, PCTrio.
Portiamoci sulla scheda Web Sites , tasto destro, Nuovo Sito ... come indicato in figura :

Fatto questo , si apre di nuovo un Wizard che ci guiderà nella creazione del nuovo Sito Web.
Iniziamo con l' inserire il nome , come in figura :

Continuiamo premendo NEXT
E si arriva ad una schermata molto importante, perchè è quella relativa al settaggio dell' indirizzo IP e delle porte.
La configurazione che Vi proporremo , NON è l' unica adottabile, ce ne sono altre...è quella con cui, personalmente, ho avuto meno problemi in assoluto. Bene, cominciamo con l' inserire l' indirizzo IP Interno della vostra scheda di rete, per esempio 192.168.1.33 , la porta lasciatela pure su 80 (il default per il protocollo di comunicazione HTTP) e poi settate il valore di Host Header su www.vostrodominio.it (nell'esempio www.pctrio.com). Perchè questo ? Perchè questo è un modo "standard" di assegnare più Siti Web alla stessa interfaccia di rete...l'altro modo consiste nell' assegnare più indirizzi IP alla scheda di rete e far corrispondere ogni indirizzo IP ad un Server diverso. Questa seconda strada, naturalmente, presuppone che in caso abbiate un Router/Firewall esterno (cosa altamente consigliata) la porta 80 sia "nattata" su ogni indirizzo IP....
Ecco come si presenta la videata :

Fatto questo inseriamo il Path del vostro Sito...come in figura :

Sempre premendo NEXT si arriva alla schermata delle "Permission"...di solio va bene così come è impostata di default...va visto da caso a caso :

A questo punto il Wizard finisce e va confermato premendo il tasto Finish Si ha una situazione del genere :

Cliccando con il tasto destro del mouse e selezionando Proprietà ecco quello che viene fuori :

Soffermiamoci un istante sulla scheda Enable Logging ... Molto importante perchè IIS è in grado di registrare qualsiasi richiesta che gli perviene in modo molto dettagliato, così da rintracciare eventuali operazioni "non lecite" svolte , magari, da qualche malintenzionato.
Lasciamo inalterato lo standard con cui devono essere memorizzate le informazioni è cioè W3C Extended Log File Format e clicchiamo su Proprietà. Ecco quello che appare :

Come possiamo notare è possibile scegliere "come" loggare...generalmente "per giorno" va benissimo...
Viene indicata la dirfectory dove verrà salvato il log (potete anche lasciarla invariata) e il formato del nome del log exyymmdd.log.
Ma se clicchiamo su "Advanced" abbiamo la possibilità di "istruire" IIS su cosa loggare..coem mostrato in figura :

Fleggatele pure tutte...non abbiate paura, più informazioni IIS riesce a darVi, è meglio è ... ormai lo spazio disco non costa più molto... Andiamo nel nostra configurazione...e ci portiamo sulla scheda Performance dove possiamo stabilire la quantità di banda da assegnare al Sito e il numero massimo di connessioni, come evidenziato in figura :

Tralasciamo la scheda Isapi Filter e arriviamo alla scheda "cuore" di tutto ... Home Directory

In fondo alla scheda abbiamo (finalmente) la possibilità di impostare l' Application Pool, ovvero il grado di isolamento (e di performances) ch eil nostro Sito Web deve avere....
Ma come fare per creare un' Application Pool ? Ci si porta nella sezione Application Pool, tasto destro del mouse, New Application Pool, come evidenziato in figura :

Inseriamo il nome dell' Application Poll (per esempio APPPCTrio) e chiudiamo con OK.
Andiamo a vedere ora di settare opportunamente l' Application Pool. Per fare questo tasto destro del Mouse sull' Application Poll e poi su Proprietà . Si apre una maschera come questa :

La prima scheda è Recycling...che cosa vuol dire ? Il "Worker Process" (il processo di lavoro) di IIS, ogni tanto ha bisogno di "recuperare" memoria...praticamente il task corrispondente vine "ucciso" dallo stesso IIS che ne crea un'altro Nuovo con una quantità di RAM consumata sicuramente inferiore alla precedente...e così via, in un meccanismo completamente automatico e trasparente all' utilizzatore.
Il primo numero (1440) sono i minuti che passeranno prima che il processo sia ucciso (1 giorno) se non interverranno altri fattori che faranno scattare il meccanismo del riciclo in maniera naticipata...
Un altro fattore è il consumo di RAM , che nel coso in oggetot è stato impostato a 100MB...cioè quando il processo raggiunge i 100MB di occupazione in memoria, automaticamente si "ricicla"...e questo può accadere diverse volte al giorno...
Entriamo anche nella seconda scheda : Performances Soffermiamoci sul parametro Web Garden ... esso indica il numero di Processi in macchina per quell' Application Pool...
Nell' esempio è impostato ad 1 ... ma lo si potrebbe impostare a 4,5,10 ... ed automaticamente verrebbero creati 4,5,10 processi W3WP.exe in macchina corrispondenti a quell' Application Pool... capite ora la "potenza" degli Application Pool e di IIS 6.0 ...

Torniamo ora a parlare del Server Web (PCTrio)...
Nella scheda Documents inseriamo , eventualmente, la pagina di Default del nostro sito (se non è già presente)...
Le altre schede, al momento , non ci interessano, visto che servono solo per casi specifici... Un' ultima cosa...se avete un Sito costruito in tecnologia ASP, dovete abilitare tale filtro su IIS, altrimenti non vi funzionerà niente. Come evidenziato in figura :

La guida è terminata. E' un po' lunghetta, ma le cose da dire (e da far vedere) erano tante).
Spero che ni Vi sarete annoiati e che, anzi, incominciate ad utilizzare questo strumento che, personalmente, ritengo uno dei migliori mai sviluppati da Microsoft negli ultimi anni...


IIS 6.0 breve descrizione
La nuova versione del web server di Microsoft, IIS 6.0, e' stato totalmente riscritto supportando nativamente ASP.NET facendo tesoro delle esperienze passate così da rilasciare un web server molto più performante e affidabile aumentando i tempi di uptime sempre più vicini al 99,9%.
Un occhio particolare e' stato dato a tutti gli aspetti legati alla sicurezza, il nuovo web server infatti implementa già di default tutti quegli accorgimenti che in IIS 5.0 erano considerati come best practices, i processi degli utenti (woker Process) vengono infatti eseguiti con i permessi di "NetworkService" invece del "Local System Account", utente con permission molto più limitate rispetto al suo predecessore.
Inoltre IIS 6.0 nasce completamente "chiuso", ovvero diverse funzionalita' sono disabilitate e vanno abilitate manualmente come ad esempio la possibilita' di eseguire contenuti dinamici come pagine ASP.
In IIS 5.0 la logica applicativa prevedeva 3 tipi di "isolamento" delle applicazioni, questo per limitare la possibilità che un applicazione scritta male mandasse in crash le altre, ma questo non garantiva però la stabilita di tutto il web server.
Infatti tutta la parte di configurazione, amministrazione e controllo del corretto funzionamento girava nello stesso processo (inetinfo.exe) in cui giravano le applicazioni Web, rischiando di bloccare l'intero processo compreso anche applicazioni web che giravano in modalità "out of process" (Isolation mode: Medium o High).

Architetura - IIS 6.0
I componenti principali di IIS 6.0 sono:
- HTTP.SYS
E' il nuovo listener per le richieste HTTP e' lavora in Kernel Mode e non in User Mode come succedeva prima. Proprio per migliorare la stabilita' in HTTP.sys non e' possibile eseguire codice di "terze parti", HTTP.sys si occupa di processare , accodare le richieste HTTP da passare all' application pool relativo.
- WAS
Web Administration Service si occupa di monitare lo stato delle applicazioni web e di riclicare i worker process (overlapping).
- Application Pool
Sono usati per gestire la configurazione dei web site e possono essere configurati di modo da gestire le impostazioni di riciclo, performance e health delle applicazioni. Associando ogni web site ad un Application Pool si assicura che applicazioni di web diversi non possano mai inficiare il funzionamento delle altre perche' girano in processi differenti.
- Worker Process
Sono i processi in cui girano le aplicazioni, i filtri ISAPI e le estensioni. Il nome del processo è W3WP.EXE, questo processo a sostituito DLLHOST.EXE in IIS 5.0. I Worker Process gestiscono le richieste HTTP dell' application pool con un algoritmo di tipo FIFO.
Pur implementando diverse caratteristiche che lo rendono piu' sicuro e performante IIS 6.0 può all' occorrenza girare in modalità IIS 5.0 Isolation Mode per garantire la compatibilità con applicazioni scritte per la precedente versione.

Isolation Mode
Ulteriori informazioni circa l'architettura di IIS 6.0 si possono trovare sull'articolo presente su questo sito (clicca qui) e al sito Microsoft.
Installazione
IIS 6.0 si può installare tramite il wizard "Manage Your Server" o dal solito pannello di controllo.

Installazione IIS 6.0
Una volta installato vengono creati i seguenti account:
- IIS_WPG
Account Worker Process Group con cui girano tutti i Woker Process.
- IUSR_NomeComputer
E' l'account anonimo utilizzato dagli utenti per accedere ad i siti Internet, in configurazioni server stand alone e' membro del gruppo guest mentre in configurazioni di dominio e' membro anche del gruppo "Domain User".
- IWAM_NomeComputer
Account utilizzato da IIS per eseguire applicazioni, in configurazioni server stand alone e' membro del gruppo IIS_WPG mentre in configurazioni di dominio e' membro anche del gruppo "Domain User".
- ASPNET
Account per eseguire Worker Process .NET, in configurazioni server stand alone e' membro del gruppo User mentre in configurazioni di dominio e' membro anche del gruppo "Domain User".
In IIS 6.0 la password dell' IUSR per problemi di sicurezza non è più controllata direttamente di IIS di fatto manca in relativo check box
presente nella versione precedente.
http://support.microsoft.com/default.aspx?scid=KB;[LN];332167
In questa nuova versione sono state potenziate l'interfaccia di Amministazione Remota e gli scripts di amministrazione da riga di comando.
L'amministarazione Remota è un componente che va abilitato sempre dal pannello di controllo; durante la fase d'installazione sceglie con un algoritmo casuale le 2 porte (HTTP e HTTPS) comprese tra in range 2000 e 9999 su cui mettersi in ascolto.

Amministratore remota di IIS

Gli scripts d' amministrazione in WSH installati di default in %systemroot%\system32 permettono di effettuare praticamente tutto da riga di comando, addirittura di modificare il Metabase che ora è in formato XML o riavviare istanze di webserver remoti.
Gestione di IIS 6.0
Dalla management "IIS Manager" e' possibile creare e gestire Web Site, Application Pool e abilitare o disabilitare le estensioni web come ad esempio ASP o CGI.
Come accennato in precedenza gli Application Pool, che garantiscono la salute e le performance dei web site, sono completamente configurabili tramite proprio la management; in particolare è possibile impostare il riciclaggio dei worker process in base al tempo (di default ogni 29 ore), alle richieste processate, ad un determinato orario o in base all' uso della memoria di modo da cercare di compensare mancanze delle applicazioni Web.
IIS 6.0 per il riclaggio dei processi worker process utilizza la tecnica dell' Overlapping garantendo che durante il riciclaggio nessuna connessione venga persa.
Quando un worker process e' da riciclare perche' ad esempio richiesto da WSA, IIS crea un altro processo per sostituire quello vecchio.
Ci sara' quindi un momento in cui ci saranno 2 processi w3wp.exe in vita; quello riciclare che non accettera' piu nuove connessioni ma smaltira'
la coda e poi verra' spento , quello nuovo che accettera' tutte le nuove connessioni.

Application Pools
In IIS 6.0 le funzionalità ASP e ASP.NET sono configurate per auto-monitoraggio nel senso che, se i tempi per processare pagine ASP e' superiore al tempo di Time-out specificato nelle proprietà del web site, IIS chiede al motore ASP di interrompere l'elaborazione e in caso di un numero elevato di thread abortiti asp.dll richiede autonomamente il riciclaggio.
Per scenari di tipo Internet Service Provider, IIS 6.0 supporta di alcune funzionalità tipo l'affinità di CPU e i Web garden che possono risultare parecchio utili.
Alcuni ISP sfruttando la caratteristica di affinità CPU possono configurare le applicazioni web di modo da usare determinate CPU settando il parametro "SMPAffinitized" tramite Adsutil.vbs.
Adsutil.vbs set W3SC /AppPools/ApplicationPoolName/SMPAffinitized TRUE
La funzionalita' di Web Garden permette di associare più Worker Process (di default 1) ad un Application Pool; questo permette di avere n processi W3WP.exe in esecuzione facendo così balancing (tipo "round robin") e failover di connessioni provvedendo comunque anche alla persistenza delle sessione per garantire sessioni SSL e le variabili di sessione.

Web Garden
Come detto in precedenza, il metabase di IIS6.0 è in formato XML e può quindi essere editato con notepad addirittura "live", abilitando la relativa opzione, mentre IIS è in esecuzione. Il matabase è diviso in 2 files, uno contenente proprio il metabase (metabase.xml) e l'altro lo schema (mbschema.xml).
E' stata introdotta anche una nuova opzione che permette di salvare la configurazione di un website in un file XML di modo da poterlo importare su altri web server per riprodurre lo stesso sito, cosa molto apprezzata anche dal sottoscritto che si è risparmiato di configurare 18 istanze dello stesso web su webserver diversi in batteria.
IIS 6.0 ha introdotto il concetto di "Intercettori ISAPI" meglio conosciuto come "Applicazioni Wildcard" per fornire servizi spesso disponibili attraverso i filtri ISAPI. Gli intercettori ISAPI vengono invocati ad ogni richiesta ricevuta dal web server per processare o controllare ad esempio l'header HTTP e poi passare la richiesta la motore relativo. 

Intercettori ISAPI
Il time-out delle pagine ASP è stato diminuito da 900 sec. a 120 sec e la caratteristica "Enable parent paths" usata inizialmente molto anche delle pagine ASP e sfruttata successivamente come exploit tipo "Web Folder Traversal" e' di default disabilita.
La nuova funzionalità di Background Intelligent Transfer Service (BITS), non installata di default, da la possibilità di rivervare larghezza di banda aumentendo o diminuendola a secondo della configurazione scelta in presenza di elevati carichi.
Il nuovo listener HTTP.SYS lavorando a livello kernel si occupa anche della scrittura dei log che risulta cosiì più performante, ed oltre a gestire i normali log WWW dei web site logga anche tutta una serie di errori in un file HTTPError.log presente nella direcotry %systemroo%\system32\logfiles nel quale si possono trovare errori relativi all'eleborazioni delle richieste dello stesso listener o dei worker process.
La generazione degli identificativi dei siti (Site ID) usati anche per la crezione della struttura delle direcotry per la memorizzazione dei logs sono particolarmente lunghi e non sequenziali rispetto a i web site, anche avendo un web site il site ID potrebbe essere 237854324 e quindi la directory in cui vengono salvati i logs W3SVC\237854324.
IIS 6.0 usa di fatto un algoritmo basato sul nome del sito (la description) di modo che siti con nomi identici su server web diversi abbiano Site ID uguali. (questo comportamento puo' essere riportato al funzionamento precedente di IIS 5.0 tramite registro).
Conclusioni
La nuova versione di IIS sembra quindi promettere bene, non ci resta testarla per poi aggiornare i nostri sistemi.


Utilizzo di IIS 5.0 per configurare un server Multihomed
Con il termine "multihomed" si deve intendere la possibilità di ospitare sullo stesso computer più siti web associati a differenti nomi di dominio, configurazione nota con il termine di server web virtuali.
Le risorse Web su IIS sono strutturate nel seguente modo:
Sito Master
Sito Web / (questo livello appartiene anche ai siti FTP qui non trattati)
Directory virtuale
Directory
File
Quando si configurano più server virtuali la struttura di IIS risulterà così modificata:
Sito Master
Sito Web - 1 (appartenente al dominio www.abc.com)
Directory virtuale
Directory
File
Sito Web - 2 (appartenente al dominio www.xyz.net)
Directory virtuale
Directory
File
Sito Web - 3 (appartenente al dominio www.123.it)
Directory virtuale
Directory
File
La configurazione di un server "multihomed" con IIS può essere eseguita a seconda delle esigenze in tre differenti modi:
1 - Impiego di diversi indirizzi IP statici per ciascun dominio.
2 - Utilizzo dello stesso indirizzo IP con differenti porte di accesso per ciascun dominio.
3 - Configurazione degli Host Headers sullo stesso indirizzo IP.
Configurazione di IIS 5.0 con indirizzi IP statici.
Questo metodo assegna a ciascun sito Web un differente indirizzo IP, in questo modo non c'è il rischio di confusione tra il nome a dominio ed il relativo sito Web:
Sito Master
Sito Web - 1 (appartenente al dominio www.abc.com con IP: 172.0.0.1)
. . .
Sito Web - 2 (appartenente al dominio www.xyz.net con IP: 172.0.0.5)
. . .
Sito Web - 3 (appartenente al dominio www.123.it con IP: 172.0.0.12)
. . .
Una volta noti gli indirizzi IP statici da assegnare a ciascun sito (facendo attenzione che appartengano tutti alla stessa classe C di indirizzi IP) verificate che questi siano presenti nelle impostazioni avanzate del protocollo TCP/IP, se no aggiungeteli:

Gli indirizzi IP riportati in figura sono a puro titolo di esempio.
Una volta configurato il protocollo TCP/IP sul server modificare la configurazione di IIS nel seguente modo:
Creare un nuovo sito virtuale ( o server web virtuale) per ciascun dominio che si vuole ospitare sul server, nella finestra IP Address and Port Settings assegnare l'indirizzo IP statico associato al server web virtuale.

Ripetere i passaggi di cui sopra per ciascun dominio che si vuole configurare.

Configurazione di IIS mediante utilizzo di differenti Porte TCP.
Questo metodo si differenzia dal precedente in quanto non modifica l'indirizzo IP statico assegnato ai siti virtuali che resta sempre lo stesso, ma la relativa porta TCP.

Sito Master
Sito Web - 1 (appartenente al dominio www.abc.com con IP: 172.0.0.1:80)
. . .
Sito Web - 2 (appartenente al dominio www.xyz.net con IP: 172.0.0.1:81)
. . .
Sito Web - 3 (appartenente al dominio www.123.it con IP: 172.0.0.1:82)
. . .

Il principale vantaggio consiste nel fatto di non dover impiegare un indirizzo IP per ciascun sito virtuale, consigliato visto che la disponibilità di indirizzi IP comincia ad essere una risorsa scarsa. Lo svantaggio principale è che solo il sito virtuale con la porta impostata ad 80 (valore di default per i servizi http) sarà visibile dal browser digitando il solo nome del dominio, per tutti gli altri siti virtuali sarà necessario digitare oltre l'indirizzo web anche la relativa porta (es: www.123.it:82).
Configurazione degli Host Headers
Questo metodo è stato introdotto con la nuova versione del protocollo http (http 1.1), si differenzia dai precedenti in quanto utilizza un unico indirizzo IP per tutti i siti virtuali e la stessa porta TCP (valore di default 80):
Sito Master
Sito Web - 1 (appartenente al dominio www.abc.com )
. . .
Sito Web - 2 (appartenente al dominio www.xyz.net )
. . .
Sito Web - 3 (appartenente al dominio www.123.it )
. . .

E' sicuramente il metodo migliore da adottare ogni volta che si presenta l'esigenza di ospitare più domini su IIS, l'unico svantaggio riguarda la compatibilità del sistema con le vecchie versioni di browser che non supportano il protocollo http 1.1.


Risolvere i problemi applicativi di IIS
Nei primi giorni dell'epoca di Internet, i siti Web erano costituiti soltanto da pagine HTML statiche con immagini, che gli amministratori riproducevano in un browser. Il server Web non faceva granché, oltre a elaborare le richieste di un file e inviarne i contenuti attraverso i cavi usando il protocollo HTTP. Attualmente, gli amministratori devono invece affrontare problemi complessi con i server di applicazioni Web. Gli amministratori ora hanno dei server Web che sono dei server applicativi. Le organizzazioni creano potenti applicazioni su questi server e le collegano ai database e a una miriade di altri sistemi. Ormai i server Web non inviano più soltanto i contenuti di un file attraverso i cavi, ma devono fornire o gestire l'elaborazione di un gran numero di tecnologie e orchestrare uno scambio integrato di informazioni con gli utenti. Questo processo è molto articolato e può facilmente interrompersi.
In-process e out-of-process

Uno dei vantaggi che contraddistinguono l'uso di Microsoft IIS (Internet Information Server) 4.0 è costituito dalla capacità di eseguire le applicazioni sia in-process sia out-of-process . Per default, IIS 4.0 esegue tutte le applicazioni in-process (ovvero nello stesso spazio di nomi di processo di IIS). Se un'applicazione usa le impostazioni di default, lo spazio di nomi IIS la ospita nello spazio del processo IIS. Tutte le applicazioni eseguite in-process su un server Web non vengono eseguite nel processo inetinfo.exe. Per visualizzare il carico applicativo in-process si può usare Task Manager o Performance Monitor, in modo da visualizzare l'utilizzo della CPU effettuato dal processo inetinfo.exe.

Il fatto di ospitare le applicazioni nello spazio del processo IIS permette ai programmi di utilizzare al meglio le risorse del server e di offrire prestazioni ottimali. Per esempio, l'applicazione ad alte prestazioni FMStocks, creata per Microsoft da Vertigo Software, esegue tutto in-process (ovvero in inetinfo.exe). Il fatto di eseguire tutte le applicazioni nello spazio di nomi IIS 4.0 è caratterizzato anche da uno svantaggio. Quando un'applicazione viene eseguita nello spazio di nomi IIS 4.0, può influenzare altre applicazioni. Se una parte dell'applicazione si blocca, può mandare in crash l'intero programma. Se il malfunzionamento in una parte dell'applicazione è causato da un errore logico, questo errore di solito non influenza IIS o le altre applicazioni. Se invece una parte dell'applicazione si blocca perché ha cercato di accedere alla memoria posta all'esterno del proprio spazio di processo, manderà in crash anche IIS e le altre applicazioni.

Il primo passo da intraprendere per risolvere i problemi di IIS è quello di isolarli. Se si vede che un'applicazione continua a bloccarsi e manda in crash il server Web, la si può configurare in modo da essere eseguita out-of-process; così facendo, si può evitare che il server Web si blocchi fino a quando sia stata individuata la causa del problema. Per far eseguire l'applicazione out-of-process (ovvero in uno spazio di memoria separato), si può utilizzare la sua pagina Properties. La schermata 1 mostra la pagina Properties di un'applicazione di prova, MTSTester.

I siti Web che usano unicamente IIS non richiedono frequenti riavvii od ottimizzazioni, dal momento che IIS è una piattaforma stabile se utilizzata da sola. Per esempio, il nostro ISP (Internet Service Provider) dispone di 17 server affidabili che usano IIS 4.0 con il Windows NT 4.0 Service Pack 5 e ospitano applicazioni che fanno uso di codice HTML, ASP (Active Server Pages) e oggetti COM (Component Object Model).
Il fatto di eseguire un'applicazione in-process assume un significato può quando l'applicazione usa gli oggetti COM. Questi ultimi forniscono all'applicazione una grande potenza, ma richiedono una gestione particolare, come la capacità di individuare la posizione del componente, di controllare chi vi accede e di impostare delle procedure per sostituire i componenti.
Una parte della gestione degli oggetti COM richiede di capirne le funzioni. Dal momento che un oggetto COM è un'applicazione compilata, non è possibile vedere il codice dell'oggetto e in che modo l'oggetto funziona; ciò rende particolarmente difficile ispezionare l'applicazione e individuare il problema. Si potrebbero inoltre usare degli oggetti COM acquistati presso un'altra azienda; ciò produce un ulteriore allontanamento dal codice dell'oggetto. Quando un oggetto COM viene caricato nel processo IIS, il suo codice viene eseguito nello stesso spazio di memoria di IIS.
Il nostro ISP si dà molto da fare per garantire l'affidabilità degli oggetti COM. In ogni caso, durante la seconda metà del 1998, ci siamo accorti che il nostro sito offriva buone prestazioni per un certo periodo di tempo, ma poi rallentava gradualmente fino a bloccarsi. Questo declino delle prestazioni si è verificato nel corso di varie settimane o mesi, ed era piuttosto casuale. Quando il responsabile tecnico dell'ISP ha scoperto che il nostro sito veniva eseguito out-of-process, lo ha configurato per l'esecuzione in-process e il problema è scomparso. Successivamente abbiamo avuto modo di parlare con molte persone che avevano problemi simili. L'idea generale è che le applicazioni out-of-process su IIS 4.0 possono manifestare dei problemi di stabilità sul lungo termine, che in definitiva portano alla necessità di riavviare il server. Alcuni amministratori segnalano di eseguire out-of-process alcune applicazioni intranet in modo da scongiurare il crash dei server, che vengono riavviati periodicamente. Dal momento che la prassi del riavvio funziona per questi siti, gli amministratori devono conviverci.
IIS 4.0 usa Microsoft MTS (Microsoft Transaction Server) per gestire le applicazioni in-process e out-of-process. Un pacchetto MTS è il container di uno o più componenti COM e definisce lo spazio di nomi per i componenti. L'eseguibile MTS che gestisce i pacchetti MTS è mtx.exe. Task Manager permette di osservare le istanze di mtx.exe create da MTS quando IIS esegue le applicazioni out-of-process.
Gli amministratori eseguono i pacchetti MTS nello spazio di processo IIS allo scopo di migliorare le prestazioni. Per far eseguire i pacchetti MTS nello spazio di processo IIS è necessario disporre dei privilegi di gestione in MTS Explorer. I pacchetti MTS possono anche essere eseguiti in un processo server (ovvero out-of-process come Server Packages), oppure nel processo dell'applicazione chiamante. Si può usare la pagina Properties del pacchetto per cambiarlo da un'applicazione server MTS e per farlo eseguire nel processo inetinfo.exe. Per accedere a questa pagina è necessario avviare MTS Explorer dal menu Programs. Espandere la cartella Computers, la cartella del computer che si desidera modificare, e la cartella Packages Installed. Successivamente, selezionare il pacchetto che si vuole modificare e la sua pagina Properties. In corrispondenza della scheda Activation, selezionare Library Package, come indicato dalla schermata 2, poi fare clic sul pulsante OK. Dopo la selezione di Library Package, gli oggetti in questo pacchetto verranno eseguiti nello spazio di processo dell'applicazione chiamante (per esempio, inetinfo.exe per IIS).

Per isolare un problema di IIS, modificare le impostazioni di tutti i pacchetti MTS usati da IIS e verificare che vengano eseguiti come Server Packages e non come Library Packages (ovvero in-process). Le prestazioni potrebbero soffrirne, ma IIS continuerà a funzionare anche se il problema è causato da un oggetto eseguito su MTS.
IIS Exception Monitor
L'IIS Exception Monitor aiuta gli amministratori a individuare la causa dei problemi di IIS. Microsoft ha progettato questo tool per consentire di osservare IIS e di intraprendere un'azione quando si verifica un'eccezione. L'azione intrapresa da IIS Exception Monitor dipende dal modo in cui il tool è stato configurato. Per ottenere IIS Exception Monitor, fare riferimento all'articolo Microsoft intitolato "INFO: Troubleshooting Exceptions in Internet Server Products", disponibile all'indirizzo http://support.microsoft.com/support/kb/articles/q160/3/60.asp. Questo articolo contiene un link per scaricare IIS Exception Monitor e la relativa documentazione. Raccomandiamo di prelevare anche la documentazione, dal momento che spiega come usare il tool. Il file README installato insieme a IIS Exception Monitor fornisce ulteriori informazioni sul tool. L'installazione di IIS Exception Monitor è semplice e richiede soltanto pochi minuti. Per installare il tool, eseguire ixcptmon.exe sul server IIS. Questo eseguibile si potrà trovare nel menu Programs (nella nostra installazione di prova non è tuttavia stato installato il gruppo Programs), oppure nella directory in cui è stato scaricato (quella di default è c:\ixcptmon). Quando si esegue ixcptmon.exe, una procedura di autocomposizione accompagna l'utente nelle varie fasi della configurazione. Dopo l'avvio di IIS Exception Monitor, fare clic sul pulsante Next nella prima finestra di dialogo. Successivamente, selezionare Yes, "Verify the IIS symbols that I have installed" nella seconda finestra di dialogo e poi fare clic su Next. Queste azioni fanno sì che IIS Exception Monitor controlli il sistema e determini tutti i file symbol necessari. I file symbol contengono i dati usati da IIS Exception Monitor per compiere il debugging del processo IIS e gli consentono di individuare la posizione degli errori.
Quando IIS Exception Monitor ha stabilito quali file symbol vengono richiesti dal sistema, elenca tutti i file necessari come indicato dalla schermata 3. Questa visualizzazione varia a seconda dei file presenti sul sistema. Alla conclusione di questo processo di analisi, selezionare la casella di controllo "Determine which symbol packages can be installed from Microsoft's Internet Site" e successivamente fare clic sul pulsante Next. Dalla finestra di dialogo Download Symbols che verrà aperta a questo punto, selezionare il primo file symbol della lista e fare clic su Download. Fare quindi clic su Next in modo da scaricare il file. Selezionare in successione ognuno dei file symbol e scaricarlo (alcuni file possono impiegare vari minuti per completare il download). Al termine dello scaricamento, il programma chiederà di installare i file.

Per avviare una sessione IIS Exception Monitor, eseguire un'altra volta ixcptmon.exe. Se l'eseguibile è ancora in esecuzione dopo l'installazione dei simboli, si può usare la sessione attiva. Se invece l'eseguibile è stato riavviato, fare clic su Next nella finestra di dialogo Check Symbols, selezionare " No, I am confident that the symbols are installed correctly" , quindi fare clic su Next.
Nella finestra di dialogo Process Options che verrà visualizzata a questo punto, si può selezionare il tipo di processo che si desidera tenere sotto controllo. Le alternative comprendono in-process (per esempio, inetinfo.exe), out-of-process (per esempio, le applicazioni contrassegnate in modo da essere eseguite in uno spazio di indirizzamento separato), oppure other process (ovvero qualsiasi altro processo). Selezionare In Process e fare clic su Next, in modo da aprire la finestra di dialogo Session Options.
Quest'ultima determina come verrà eseguito IIS Exception Monitor. Si può fare in modo che il tool tenga sotto controllo una sezione, oppure si può porre IIS Exception Monitor nella modalità Recursive Mode al fine di tenere sotto controllo i processi fino a quando si verifica un'eccezione. Quando IIS Exception Monitor individua un errore in Recursive Mode, aggiorna il log, chiude il processo inetinfo.exe, lo riavvia e successivamente riprende l'attività di monitoring. Quando il tool rileva un errore importante in questa modalità fail-safe, chiude IIS e riavvia il server.
È possibile usare due metodi diversi perimpostare la modalità Recursive Mode. Si può selezionare la casella di controllo Enable Recursive Mode dalla finestra di dialogo Session Options, oppure si può usare lo switch /r da un prompt dei comandi per avviare ixcptmon.vbs. È inoltre possibile usare questo switch da un prompt dei comandi anche per disattivare la modalità Recursive Mode. 
La finestra di dialogo Session Options permette inoltre di inserire l'indirizzo al quale inviare automaticamente degli allarmi quando si verifica un'eccezione. Si può usare Net Send per inserire un nome di sistema o nome utente nella casella di testo Notify Admin. Se nel sistema sono installati e configurati degli oggetti CDO (Collaborative Data Object), è anche possibile usare un indirizzo di posta elettronica per questi allarmi. Per specificare il nome del sistema o il nome e-mail, si può usare lo switch /notify e inserire il nome e-mail da un prompt dei comandi.

L'impostazione Manual nella finestra di dialogo Session Options permette di avviare IIS Exception Monitor in modalità manuale (ovvero di supporto). Questa modalità viene usata quando si chiama il supporto tecnico di Microsoft e si lavora con un tecnico del supporto. Nella modalità manuale, è possibile collegare a Internet il proprio server in modo che il tecnico del supporto possa accedere remotamente al sistema e lavorare con voi per risolvere il problema.

Dopo avere configurato la finestra Session Options, fare clic su Next in modo da attivare la visualizzazione della finestra di dialogo Start Monitoring; successivamente, fare clic su " Run This Monitoring Session ". Ciò avvia la sessione di monitoring e fa sì che IIS Exception Monitor esegua ixcptmon.vbs con gli switch appropriati. Quando ixcptmon.vbs inizia la propria esecuzione, viene aperta una finestra del prompt dei comandi; non bisogna chiuderla, dal momento che si tratta della finestra di esecuzione di ixcptmon.vbs. Dopo l'avvio della sessione, fare clic su Next per visualizzare la finestra Session Status. Questa finestra è l'interfaccia del processo IIS Exception Monitor.

Dalla finestra di dialogo Session Status è possibile visualizzare la sessione attiva dei file di log per le sessioni precedenti. Selezionare il log da visualizzare, come indica la schermata 4, e fare clic su View Log per accedere ai file di log creati da IIS Exception Monitor. Prima di essere in grado di visualizzare i file di log, occorre interrompere il processo di monitoring. Allo scopo di fermare il monitoring e fermare e riavviare IIS, aprire la finestra del prompt dei comandi per il tool e premere Ctrl+C. Successivamente, eseguire nuovamente IIS Exception Monitor in modo da visualizzare i log.

Il pulsante View Log nella finestra di dialogo Session Status permette di aprire la finestra Log indicata dalla schermata 5.

Questa finestra offre varie opzioni per visualizzare le informazioni sullo stato della sessione di log e IIS. Per accedere a queste opzioni, si possono usare vari pulsanti. IIS Exception Monitor può essere usato anche per chiudere il processo inetinfo.exe, in modo che sia possibile riavviare IIS. Durante l'installazione di IIS Exception Monitor, kill.exe viene installato nella cartella \ixcptmon\bin. Ixcptmon.vbs esegue kill.exe quando il processo inetinfo.exe richiede di essere fermato e riavviato. Kill.exe può essere eseguito anche da un prompt dei comandi, in modo da fermare inetinfo.exe o un altro processo. Per esempio, per chiudere inetinfo.exe si può impartire il comando kill -f inetinfo.exe. Kill.exe è disponibile anche nel Microsoft Windows NT Server 4.0 Resource Kit .
Risoluzione degli errori
Per isolare e risolvere i problemi di IIS, si può cambiare lo spazio di nomi dell'applicazione e fare in modo che venga eseguita out-of-process. Dopo avere impostato le applicazioni in modo che vengano eseguite out-of-process, le si può sottoporre a test con sicurezza in un ambiente che non influenza IIS. È anche possibile modificare le impostazioni dei pacchetti MTS usati da IIS, al fine di garantire che questi ultimi vengano eseguiti come Server Packages. Per tenere ulteriormente traccia degli errori di IIS e per risolverli, si può usare IIS Exception Monitor quale aiuto per individuare la posizione in cui si verificano i problemi all'interno dei componenti applicativi IIS.