IIS & C#

ADSI IIS 05 Recuperare la versione di IIS

Per recuperare la versione di Internet Information Services sulla quale sta girando la nostra applicazione possiamo ricorrere all'interrogazione diretta del metabase attraverso il namespace "System.DirectoryServices".Come? In questo modo: W3SVC = new DirectoryEntry("IIS://localhost/W3SVC/Info"); Console.WriteLine(W3SVC.Properties["MajorIIsVersionNumber"].Value.ToString()); Console.WriteLine(W3SVC.Properties["MinorIIsVersionNumber"].Value.ToString()); Creiamo un oggetto DirectoryEntry collegato al ramo Info della gerarchia W3SVC, il quale offre numerose informazioni relative alla versione di IIS in uso.Le due interessate a questo post sono MajorVersionNumberMinorIISVersionNumber Le quali contengono i valori int relativi alla versione di IIS in uso.

posted @ Saturday, October 1, 2005 2:50 PM | Feedback (17)

ADSI IIS 04: Cambiare Il Nome ad un WebSite

Torniamo a parlare di ADSI.Tempo fa affrontai un progetto in cui si aveva la necessità di cambiare il nome ad un WebSite all'interno di IIS via codice. In entrata potevo avere 2 valori, Identificativo website e valore stringa da assegnare. Naturalmente la risposta è stata ADSI.Il metodo che segue effettua una connessione diretta al ID interessato e ne imposta la proprietà ServerComment.Al termine dell'operazione viene lanciato il CommitChange per rendere persistenti le modifiche.Nel caso in cui il cambio di valore fallisca, (questo può accadere spesso e volentieri) il metodo integra un sistema di retry.  Attende 2 secondi e riparte con l'esecuzione.             ...

posted @ Wednesday, September 21, 2005 11:08 AM | Feedback (17)

ADSI IIS 03: Pilotare un WebSite da codice

Programmare IIS con ADSI non significa esplicitamente prelevare e cambiare valori di proprietà.Derivando dalla logica ad albero di Active Directory, la programmazione di IIS eredita il metodo Invoke, il quale ci permette di pilotare via codice un determinato WebSite. Ad esempio, il codice lancia i comandi Start WebSite - Il Sito Internet viene messo Online Stop WebSite - Il Sito Internet viene messo Offline              ///              /// Lancia comandi Internet Information Services per un determinato Dominio specificato              /// I comandi supportati sono [start-stop].              /// Utilizza ADSI.              ///              /// string              /// long              /// string              private void executeWebSiteCommand(string IpAddress,long ID,string...

posted @ Friday, September 2, 2005 3:04 PM | Feedback (16)

ADSI IIS 02: Cambiare la path ad un WebSite

ADSI (come noto) non si ferma alla sola gestione di ActiveDirectory; viene spesso utilizzato per gestire programmaticamente Internet Information Services. La funzione che segue cambia la homeDirectory di un sito a partire dal suo ID.              private void changeIISFolder(long IDWebsite,string folder)              {                     try                     {                            String folder = @"c:\mynewpath";                            DirectoryEntry iisWeb = null;                            iisWeb = new DirectoryEntry(@"IIS://" + "localhost" + @"/W3SVC/" + IDWebsite + @"/root");                                   iisWeb.Properties["Path"].Value = folder;                                    iisWeb.CommitChanges();                                   iisWeb.Close();                            iisWeb.Dispose();                     }                     catch (System.Exception ex)                     {                            // Gestire l’errore qui                     }              } Programmare IIS con ADSI non è esageratamente difficile,...

posted @ Friday, September 2, 2005 12:54 PM | Feedback (59)

ADSI IIS 01: Set/Delete HostHeaders in IIS con C#

System.DirectoryServices sfruttando ADSI permette l'interfacciamento ad Internet Information Services 6. Spesso si ha la necessità di eseguire operazioni batch per una grande quantità di domini internet presenti all'interno del proprio server/webfarm. Il codice che segue esegue le operazioni di set e delete degli HostHeaders per un determinato Virtual Server (un sito configurato) all'interno di IIS.Note:Referenziare System.DirectoryServices        private void Execute()        {              string[] a = new string[2];              a[0] = ":80:forum.dominio.it";              a[1] = ":80:www.dominio.it";                // Setta gli headers presenti nell'array              // per il dominio che ha IDIIS pari a 1967680450              SetIISHostHeader(a, 1967680450);                // Cerca e rimuovi gli...

posted @ Monday, August 29, 2005 11:51 AM | Feedback (23)