Archive

Posts Tagged ‘IIS’

[C# – IIS] Récupérer les sites web sur le IIS local

Toujours concernant [Sécurité] Chiffrer les données de configuration, j’ai un cherché à récupérer les sites web présents sur le IIS local.
Histoire de proposer une dropdown list sur mon application plutôt qu’un champ de texte (ce qui est moins susceptible d’erreurs).

Et là, ce fut quand même assez simple, bien plus que ce que je ne m’attendais.

Il est possible, via le namespace System.DirectoryServices (on doit donc référencer l’assembly du même nom), d’avoir un paquet assez incroyable d’informations sur IIS.

Je me suis limité aux sites web (et répertoires virtuels, en fait).
Voici le bout de code :

List<string> listeWebSites = new List<string>();

// Le "root" de IIS.
DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc");
foreach (DirectoryEntry de in w3svc.Children)
{
    // Ne récupérer que le "Default Web Site".
    if (de.SchemaClassName == "IIsWebServer"
        && de.Properties["ServerComment"].Value.Equals("Default Web Site"))
    {
        // Ici, comprends toute la configuration et tout plein de choses !
        foreach (DirectoryEntry child in de.Children)
        {
            // Le "ROOT" correspond uniquement aux sites web.
            if (child.Name.Equals("ROOT"))
            {
                // Pour chaque site web, donc.
                foreach (DirectoryEntry webSite in child.Children)
                {
                    listeWebSites .Add(string.Format("/{0}", webSite.Name));

                    // On peut aussi aller chercher les répertoires virtuels.
                    // Il y a peut-être un autre niveau pour les répertoires virtuels dans les répertoires virtuels
                    // mais c'est du vice, à ce niveau là...
                    foreach (DirectoryEntry webSiteVirtual in webSite.Children)
                    {
                        listeWebSites .Add(string.Format("/{0}/{1}", webSite.Name, webSiteVirtual.Name));
                    }
                }
            }
        }
    }
}

Bon, j’avoue, c’est un peu (beaucoup) à retravailler, mais c’est pour montrer l’idée.
Ça vaut le coup de jeter un oeil !

Publicités
Catégories :.Net, C#, Développement, IIS

IIS – WebDeploy

Ça change un peu du codage pur et dur, mais cette semaine, j’ai du faire d’autres opérations.
Les opérations en question, c’est d’installer différents sites Web : répéter les opérations utiles et faire une documentation à destination de l’exploitation.

Du coup, on a un peu tâtonner sur différentes sujets (Build sous TFS, génération d’un package de déploiement…).
Dans le présent billet, je vais uniquement parler de l’installation des sites Web via Web Deploy, sous IIS et les pré-requis pour que ça se passe bien.

Déjà, pour les outils que j’ai utilisé à cette occasion :

  • Visual Studio 2010
  • IIS 7.5
  • Web Deploy

Pour IIS 7.5 et Web Deploy, il faut aller voir sur le site officiel de IIS. Ce sont bien sûr des pré-requis.

 
Lire la suite…

Catégories :.Net, ASP.Net, IIS