You are on page 1of 27

1 Dploiement et monitoring

20 octobre 2008

Dploiement et monitoring
Sommaire

Dploiement et monitoring .................................................................................................................. 1
1 Introduction ..................................................................................................................................... 2
2 Configuration de IIS pour lenvironnement ASP.NET ...................................................................... 2
2.1 Activer IIS ................................................................................................................................. 2
2.2 Prise en charge de lenvironnement ASP.NET ......................................................................... 3
2.3 Cration dun rpertoire virtuel ddi votre application ..................................................... 4
3 Le dploiement dune application Web .......................................................................................... 5
3.1 Dploiement dune application simple ................................................................................... 6
3.2 Personnaliser lassistant dinstallation .................................................................................. 10
3.2.1 Ajouter un contrat de licence ........................................................................................ 11
3.2.2 Ajouter une gestion de numro de srie ...................................................................... 12
3.2.3 Les autres boites de dialogue ........................................................................................ 14
3.3 Dploiement dune application Web Avance ...................................................................... 15
3.3.1 Les actions personnalises ............................................................................................ 15
3.3.2 La classe Installer ........................................................................................................... 17
3.3.3 Les conditions de lancement ......................................................................................... 20
3.4 Le dploiement en ligne de commande ................................................................................ 23
3.4.1 Dployer un fichier dinstallation MSI en ligne de commande ..................................... 23
3.4.2 Dploiement dune application avec Xcopy .................................................................. 23
4 Monitorer : Gnralits ................................................................................................................. 24
4.1 Explications par le code ......................................................................................................... 24
5 Conclusion ..................................................................................................................................... 27





2 Dploiement et monitoring
20 octobre 2008

1 Introduction
Ltape finale de la conception dune application Web est le dploiement de celle-ci. Le
dploiement consiste mettre en place lensemble de nos fichiers ncessaire au fonctionnement de
notre application. Au cours de ce chapitre nous verrons comment crer un installateur automatis
afin de publier notre site Web. Nous tudierons la mise en place dun service de monitoring
permettant de consulter les divers vnements que notre application aura levs ainsi que le procd
de mise en cache.
2 Configuration de IIS pour lenvironnement ASP.NET
Bien que sous les systmes Windows Server 2008, IIS soit activ par dfaut, certains modules
ont besoins dtre ajout, de plus si vous travaillez sous Windows Vista vous aurez besoin dinstaller
et dactiver vous-mme tous ces services. Nous allons voir ensemble comment effectuer ces
oprations.
2.1 Activer IIS
En premier lieu nous allons commencer par installer ce service compris dans toutes les
versions de Windows.
Allez dans le Panneau de configuration puis choisissez Programmes et fonctionnalits. Dans la partie
gauche de la fentre slectionnez Activer ou dsactiver des fonctionnalits Windows :

Une fois la fentre ouverte et charge, cochez Services Internet (IIS) ouvrez ensuite larborescence :
Outils dadministration Web Compatibilit avec la gestion IIS 6 Cochez Compatibilit avec la
mtabase IIS et la configuration IIS 6.


3 Dploiement et monitoring
20 octobre 2008


Ne validez pas pour le moment, nous passons maintenant lenvironnement .Net.
2.2 Prise en charge de lenvironnement ASP.NET
Toujours dans cette mme fentre ouvrez larborescence de Services World Wide Web, puis
dveloppez Fonctionnalits de dveloppement et dapplications. Cochez ASP.NET, dautres
composant se cocherons deux mme.

Cliquez sur OK et attendez la fin de linstallation. Soyez patient celle-ci peut durer plusieurs minutes.


4 Dploiement et monitoring
20 octobre 2008

2.3 Cration dun rpertoire virtuel ddi votre application
Une fois ces fonctionnalits installes nous allons procder la cration dun rpertoire
virtuel. Si les services Internet (IIS) sont excuts sur votre ordinateur local, vous pouvez crer une
racine virtuelle IIS qui pointe vers les fichiers d'un emplacement situ en dehors de la structure des
dossiers IIS par dfaut (en gnral \Inetpub\wwwroot). Un rpertoire virtuel est utile lorsque vous
souhaitez excuter des pages dans un dossier existant ou dans un site Web de systme de fichiers
local.
En rgle gnral un rpertoire virtuel est automatiquement cre lors du dploiement de notre
application Web. Nous allons cependant expliquer comment le faire manuellement.
Revenez au Panneau de configuration puis slectionnez Outils dadministration. Ouvrez maintenant
Gestionnaire des services Internet (IIS). Vous accder une interface de gestion telle que le montre
limage ci-dessous :

Dpliez larborescence de votre ordinateur dans la partie connexions, faites clic droit sur votre site
Web puis Ajouter un rpertoire virtuel comme le montre lexemple ci-dessous.


5 Dploiement et monitoring
20 octobre 2008


Une nouvelle fentre apparait vous permettant de crer ledit rpertoire, il est conseill de choisir le
chemin physique dans C:\intetpub\wwwroot\ chemin par dfaut des sites Web de IIS, pour des
soucis dautorisations, puis dy crer le rpertoire de votre choix.

Cliquez sur OK pour finaliser la cration de votre rpertoire virtuel.
3 Le dploiement dune application Web
Pour dployer une application, plusieurs tapes sont ncessaires et, en fonction des paramtres
prendre en compte, le temps pour effectuer ce dploiement sera plus ou moins long. Au cours de
cette leon nous verrons comment crer un fichier dinstallation automatis qui nous permettra de
dployer notre application Web rapidement.


6 Dploiement et monitoring
20 octobre 2008

3.1 Dploiement dune application simple
La cration dun fichier dinstallation est une tape relativement facile. Dans le cas prsent
nous effectuerons un dploiement simple sans base de donnes intgrer.
Pour ce premier exemple commencer par crer une application Web comme votre habitude dans le
langage de votre choix (C# ou VB), ne faisant appel aucune base de donnes. Un Label et une
Textbox dans votre page Default.aspx feront laffaire. Sauvegardez votre solution puis crez un
nouveau projet :

Choisissez Autres Type de Projet puis Configuration et dploiement. Puis slectionnez comme modle
Projet dinstallation Web.



7 Dploiement et monitoring
20 octobre 2008

Cliquez sur OK pour gnrer votre projet de dploiement.
Nous allons maintenant lier notre projet de dploiement un projet existant. Pour cela, dans
lexplorateur de votre solution de projet de dploiement, faites un clic droit sur le nom de votre
solution puis faites Ajouter Un projet existant

Choisissez le projet que vous voulez dployer en rcuprant le ficher .vbproj ou .csproj de la solution.

Cliquez sur Ouvrir pour lier votre solution votre projet de dploiement. Dsormais votre application
Web apparait dans lexplorateur de solution. Cela dit, rien nest encore fait, il faut prciser ce que
lon veut que notre fichier dinstallation copie sur le serveur IIS. Pour cela faite un clic droit sur le
nom de votre Projet dinstallation puis Ajouter Sortie de fichier


8 Dploiement et monitoring
20 octobre 2008



Slectionnez Sortie principale et Content File pour ajouter les Assemblies ainsi que les fichiers sources
de votre application. Notez quil est important de ne pas modifier votre projet installer une fois
charg dans votre projet dinstallation, sous peine de ne pas pouvoir lier nos bases de donnes locale
(Exemple : fichier.mdf).

Cliquez sur OK. Il ne reste plus qu compiler le tout et gnrer un fichier dinstallation. Faites un clic
droit sur votre projet dinstallation puis slectionnez gnrer.


9 Dploiement et monitoring
20 octobre 2008



Vous pouvez dsormais tester linstallation de votre application. Pour cela vous refaites un clic droit
sur votre projet dinstallation et cliquez sur Installer qui sera maintenant dgris. Vous pouvez tout
aussi bien allez rcuprer votre fichier dinstallation dans votre rpertoire de sauvegarde de vos
projet et lexcuter.
Voici un aperu de votre assistant dinstallation gnr :





10 Dploiement et monitoring
20 octobre 2008

3.2 Personnaliser lassistant dinstallation
Au cours du dploiement de votre application vous pouvez paramtrer linterface utilisateur
afin dafficher un contrat de licence ou bien demander un numro de srie. Nous allons voir
comment crer ces interfaces dans cette partie.
Pour commencer nous allons voir comment afficher lditeur dinterface utilisateur. Faites un clic
droit sur votre projet de Setup puis Afficher, Interface Utilisateur.

Vous pouvez dsormais consulter les diffrentes parties de la procdure dinstallation de votre site
Web dont voici un aperu.

Nous pouvons constater la prsence de deux parties distinctes :
- Installer : cette partie est celle utilis pour une installation classique.
- Installation dadministration : utilis pour une installation en mode remote (installation par
lintermdiaire dun partage rseau).


11 Dploiement et monitoring
20 octobre 2008

Dans cette partie nous ne verrons que linstallation classique car la plus courante. Ainsi que les
fonctionnalits les plus utilises.
3.2.1 Ajouter un contrat de licence
Un contrat de licence est un cran prsentant la licence du logiciel concern, l'utilisateur est
appel accepter ou refuser cette licence. Pour ajouter un contrat de licence faites clic droit sur
Dbut, puis Ajouter une boite de dialogue.

Une nouvelle fentre apparait alors vous demandant de choisir quelle boite de dialogue vous dsirez
ajouter. Nous choisirons Contrat de licence.

Un contrat de licence se place gnralement juste aprs lcran de Bienvenue, dplacez-le si
ncessaire.


12 Dploiement et monitoring
20 octobre 2008

Un contrat de licence dispose de trois proprits :
- BannerBitmap : Affiche une bannire cet cran dinstallation, prend en paramtre un fichier
Bitmap.
- LicenseFile : Prend en paramtre un fichier.rtf, fichier texte qui sera affich dans le
conteneur de licence de linstallateur. Les mises en forme de votre texte sont conserves.
- Sunken : Attend un boolen, affiche ou non les bordures du conteneur de licence.
Une fois ces proprits passes en revus voici un aperu de notre cran de Contrat de licence.

3.2.2 Ajouter une gestion de numro de srie
Ajouter un numro de srie permettra votre application de se protger contre le piratage.
Lutilisateur doit entrer une cl valide pour pouvoir poursuivre linstallation de votre application. La
cl entre est soumise un algorithme que nous expliquerons plus tard en dtail.
Tout dabord nous devons ajouter une boite de dialogue Informations Clients de la mme faon que
pour le Contrat de licence.



13 Dploiement et monitoring
20 octobre 2008

Par convention, il faut mettre cette boite de dialogue juste aprs le contrat de licence. Voici les
proprits de cette boite de dialogue :
- BannerBitmap ;
- SerialNumberTemplate : Dtermine le modle que doit suivre lalgorithme pour vrifier la
cl de validation ;
- ShowOrganisation : Prend un boolen et affiche ou non dans la boite de dialogue des
champs demandant lutilisateur dentrer ses informations ainsi que la compagnie pour
laquelle il travaille ;
- ShowSerialNumber : Prend un boolen et affiche ou non un champ permettant dentrer le
numro de srie (false par dfaut).
Voici un aperu lors de linstallation lorsque la proprit ShowSerialNumber est True :

Lalgorithme du numro de srie :
Comme vous avez pu le constater nous navons jamais entr de numros de sries valide
nous mme, et nous nauront pas le faire. En effet, cest grce la proprit SerialNumberTemplate
que nous allons dterminer un modle que va devoir suivre le numro de srie entrer.
L'algorithme de validation fonctionne de la faon suivante, il additionne tous les chiffres que vous
avez choisis de prendre en compte, il divise le rsultat par 7, le reste de la division doit tre 0 sinon le
numro de srie est refus.
Voici un tableau donnant les caractres possibles utiliser :
# Exige un chiffre qui n'est pas inclus dans l'algorithme de validation.
% Exige un chiffre qui est inclus dans l'algorithme de validation.
? Exige un caractre alphanumrique qui n'est pas inclus dans l'algorithme de validation.


14 Dploiement et monitoring
20 octobre 2008

^ Exige un caractre majuscule ou minuscule. Les chiffres ne sont pas valides ici.
< Tout caractre situ gauche de ce caractre ne s'affiche pas dans la bote de dialogue.
>
Tout caractre situ droite de ce caractre s'affiche dans la bote de dialogue.
Obligatoire comme caractre de fin en cas d'utilisation du caractre <.

Exemple :
Prenons le template suivant : <#### - %%%% - ^^??>
- Le est un sparateur entre les champs texte, vous pouvez lencadrer despace ou non.
- Les quatre # signifient que lutilisateur devra rentrer quatre chiffres qui seront ignors par
lalgorithme.
- Les quatre % signifient que lutilisateur devra rentrer quatre chiffres qui seront contrls par
lalgorithme de validation.
- Chacun des deux ^ signifient que lutilisateur devra rentrer un caractre majuscule ou
minuscule.
- Les deux ? signifient que lutilisateur devra rentrer deux caractres alphanumriques qui
seront ignors par lalgorithme.
Voici une cl entre par un utilisateur pour ce template : 1234 3459 Am1L
1, 2, 3 et 4 sont bien des chiffres.
(3+4+5+9) mod 7 = 21 mod 7 = 0 la somme des caractres pris en compte par lalgorithme est
bien un multiple de 7.
A est bien un caractre majuscule et m un caractre minuscule.
1 et L sont bien deux caractres alphanumriques.
La cl est donc valide.
3.2.3 Les autres boites de dialogue
Vous avez pu constater la prsence dautres boites de dialogue que vous avez la possibilit
dajouter : Lisez-moi, Inscrire un utilisateur, Case doption, Zone de texte, etc. Dans les cas
prcdents nous avons pu constater que les proprits de ces boites de dialogue t relativement
intuitive, et cest toujours le cas pour la boite de dialogue Lisez-moi par exemple.
Cela dit certaines dentre elles doivent tre lies avec des actions personnalises. Par exemple vous
dsirez enregistrer les informations personnelles de lutilisateur linstallation afin de personnaliser
laffichage de lapplication ou bien configurer laccs une base de donnes en modifiant le fichier
web.config.
Dans la section suivante nous allons voir comment crer des actions personnalises.



15 Dploiement et monitoring
20 octobre 2008

3.3 Dploiement dune application Web Avance
Nous venons de voir quil existe certaines boites de dialogue facile grer, ceci tant il est
parfois ncessaire deffectuer un dploiement qui requiert une configuration de la part de
lutilisateur. Par exemple si nous avons plusieurs projets ajouts nous pouvons lui donner la
possibilit de ne choisir quun seul dentre eux.
3.3.1 Les actions personnalises
Les actions personnalises sont des scripts et ou bien des excutables que nous aurons cres
et dont nous devrons dfinir le but.
Notre but sera de modifier le fichier web.config en fonction des entres de lutilisateur au cours du
dploiement. Dans lexemple que nous allons suivre, nous enregistrerons des variables globales dans
le web.config.
Pour commencer nous allons ajouter une boite de dialogue linterface utilisateur de type Zone de
texte (A) juste aprs Bienvenue . Supposons quon laisse lutilisateur la possibilit de
personnaliser le message daccueil de son application et den dfinir le propritaire.
Pour la configuration de la boite de dialogue veuillez suivre lexemple ci-dessous :

Une fois notre zone de texte ajoute et configure nous allons permettre la cration daction
personnalise. Pour cela faite un clic droit sur votre projet de dploiement, puis Afficher, Actions
personnalises. Vous accdez une interface de ce type :



16 Dploiement et monitoring
20 octobre 2008

Sur chacun des dossiers Installer, Valider, Restaurer, Dsinstaller, faites un clic droit puis Ajouter une
action personnalise. Slectionnez la Sortie principale de votre projet (Actif) :

Dans chacune de vos actions personnalises vous disposez dune proprit CustomActionData qui va
nous permettre de crer des variables contenant les entrs de lutilisateur lors du dploiement
utilisable dans le script dinstallation (que nous allons voir juste aprs).
Voici la syntaxe utiliser pour crer ces variables :
/variable1=[NomDeVotreEdit1Property] /variable2=[NomDeVotreEdit2Property]
Il ne faut pas oublier de mettre le / devant chaque nouvelle variable ainsi quun espace entre
chacune delle, il faut aussi que votre nom dEditProperty soit en majuscule.
Voici ce quil vous rentrer dans cette proprit pour les besoins de lexemple :
/accueil=[EDITACCUEIL] /prenom=[EDITPRENOM] /nom=[EDITNOM]
Noubliez pas deffectuer cette opration pour chaque action personnalise.

Nous avons maintenant la possibilit de rcuprer les entres utilisateurs et de les grer dans un
script dinstallation.
Rappelons que le but de notre exemple est dajouter des variables globales notre fichier
web.config. Dans ce but nous allons crer une section ddie cette utilisation.


17 Dploiement et monitoring
20 octobre 2008


La partie en gras est celle qui nous interesse, adapter en fonction de vos besoins pour votre
application Web.
3.3.2 La classe Installer
La classe Installer est une classe que nous allons ajouter notre projet dapplication Web (et
non celui de dploiement) qui va nous permettre dexcuter des actions personnalises au cours du
dploiement de notre application Web.
Pour ajouter une classe Installer faite un clic droit sur votre projet dapplication Web puis Ajouter
Nouvel lment et choisissez Classe Installer puis validez.

Il ne nous reste plus qu diter notre classer Installer1. Pour ce faire, nous sommes obligs de
surcharger la mthode Install.
Tout dabord voici les namespaces ajouter :
- System.IO;
- System.ComponentModel;
- System.Reflection;
- System.Xml.
XML du fichier web.config
<?xml version="1.0"?>
<configuration>

<appSettings>
<add key="Accueil" value="" />
<add key="Prenom" value="" />
<add key="Nom" value="" />
</appSettings>

<system.web>
<compilation debug="true">
</compilation>
<authentication mode="Windows"/>
</system.web>
</configuration>


18 Dploiement et monitoring
20 octobre 2008

Et voici le code de la classe Installer.

C# de Installer1.cs
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
// On commence par rcuprer les variables entres pas l'utilisateur.
// Notez qu'on utilise les variables dclares dans les actions personnalises.
String txtAccueil = this.Context.Parameters["Accueil"];
String txtPrenom = this.Context.Parameters["Prenom"];
String txtNom = this.Context.Parameters["Nom"];
// Nous allons rcuprer l'assembly courrante afin de rcuprer le chemin du fichier
Web.config.
Assembly Asm = Assembly.GetExecutingAssembly();
String chemin;
chemin = Asm.Location.Substring(0, Asm.Location.Length - Asm.GetName().Name.Length - 8) +
"\\Web.config";
// Le FileInfo va nous permettre de voir que le fichier Web.config existe bel et bien.
FileInfo FileInfo1 = new FileInfo(chemin);
if (!FileInfo1.Exists)
{
throw new InstallException("Impossible de trouver le fichier de configuration.");
}
// Nous allons charger notre web.config dans un objet XmlDocument afin de le parcourir
//et de pouvoir le modifier par la suite.
XmlDocument XmlDocument1 = new XmlDocument();
XmlDocument1.Load(FileInfo1.FullName);
// Les boolens suivant vont nous permettre de lever des erreurs personnalises.
Boolean FoundAccueil = false;
Boolean FoundPrenom = false;
Boolean FoundNom = false;
// On parcours notre section appSettings de notre web.config contenue dans le
XmlDocument1.
foreach (XmlNode NodeFound in XmlDocument1["configuration"]["appSettings"])
{
// On recherche les Node ayant pour nom "add" puis en fonction de la valeur de
l'attribut
//"key" nous allons insrer les entres de l'utilisateur adequate dans l'attribut
"value".
if (NodeFound.Name == "add")
{
if (NodeFound.Attributes["key"].Value == "Accueil")
{
NodeFound.Attributes["value"].Value = txtAccueil;
FoundAccueil = true;
}
if (NodeFound.Attributes["key"].Value == "Nom")
{
NodeFound.Attributes["value"].Value = txtNom;
FoundNom = true;
}
if (NodeFound.Attributes["key"].Value == "Prenom")
{
NodeFound.Attributes["value"].Value = txtPrenom;
FoundPrenom = true;
}
}
}
// Si un de nos boolens a sa valeur false on lve une exception.
if (!FoundAccueil)
{
throw new InstallException("Impossible de trouver la cl Accueil");
}
if (!FoundNom)
{
throw new InstallException("Impossible de trouver la cl Nom");
}
if (!FoundPrenom)
{
throw new InstallException("Impossible de trouver la cl Prenom");
}
// Pour finir on sauvegarde notre XmlDocument1 sur le web.config
XmlDocument1.Save(FileInfo1.FullName);
}




19 Dploiement et monitoring
20 octobre 2008


VB.NET de Installer1.cs
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
MyBase.Install(stateSaver)
' On commence par rcuprer les variables entres pas l'utilisateur.
' Notez qu'on utilise les variables dclares dans les actions personnalises.
Dim txtAccueil As String = Me.Context.Parameters.Item("Accueil")
Dim txtPrenom As String = Me.Context.Parameters.Item("Prenom")
Dim txtNom As String = Me.Context.Parameters.Item("Nom")
' Nous allons rcuprer l'assembly courrante afin de rcuprer le chemin du
fichier Web.config.
Dim Asm As System.Reflection.Assembly =
System.Reflection.Assembly.GetExecutingAssembly
Dim chemin As String
chemin = Asm.Location.Substring(0, Asm.Location.Length - Asm.GetName.Name.Length
- 8) + "\Web.config"
' Le FileInfo va nous permettre de voir que le fichier Web.config existe bel et
bien.
Dim FileInfo As System.IO.FileInfo = New System.IO.FileInfo(chemin)
If Not FileInfo.Exists Then
Throw New InstallException("Impossible de trouver le fichier de
configuration !")
End If
' Nous allons charger notre web.config dans un objet XmlDocument afin de le
parcourir
'et de pouvoir le modifier par la suite.
Dim XmlDocument As New System.Xml.XmlDocument
XmlDocument.Load(FileInfo.FullName)
Dim Node As System.Xml.XmlNode
' Les boolens suivant vont nous permettre de lever des erreurs personnalises.
Dim FoundAccueil As Boolean = False
Dim FoundPrenom As Boolean = False
Dim FoundNom As Boolean = False
' On parcours notre section appSettings de notre web.config contenue dans le
XmlDocument1.
For Each Node In XmlDocument.Item("configuration").Item("appSettings")
' On recherche les Node ayant pour nom "add" puis en fonction de la valeur
de l'attribut
'"key" nous allons insrer les entres de l'utilisateur adequate dans
l'attribut "value".
If Node.Name = "add" Then
If Node.Attributes.GetNamedItem("key").Value = "Accueil" Then
Node.Attributes.GetNamedItem("value").Value = txtAccueil
FoundAccueil = True
End If
If Node.Attributes.GetNamedItem("key").Value = "Prenom" Then
Node.Attributes.GetNamedItem("value").Value = txtPrenom
FoundPrenom = True
End If
If Node.Attributes.GetNamedItem("key").Value = "Nom" Then
Node.Attributes.GetNamedItem("value").Value = txtNom
FoundNom = True
End If
End If
Next Node
' Si un de nos boolens a sa valeur false on lve une exception.
If Not FoundAccueil Then
Throw New InstallException("Impossible de trouver la cl Acceuil")
End If
If Not FoundPrenom Then
Throw New InstallException("Impossible de trouver la cl Prenom")
End If
If Not FoundNom Then
Throw New InstallException("Impossible de trouver la cl Nom")
End If
' Pour finir on sauvegarde notre XmlDocument1 sur le web.config
XmlDocument.Save(FileInfo.FullName)
End Sub




20 Dploiement et monitoring
20 octobre 2008

Testons maintenant notre projet de dploiement, faites Gnrer puis Installer.
Voici ce que vous devriez avoir juste aprs lcran de Bienvenue .

Finissez linstallation.
Allez dans votre rpertoire dinstallation de votre application Web (gnralement
cest C:\inetpub\wwwroot\MonPremierSetup\) puis ouvrez avec WordPad le web.config de votre
application Web.
Vous pourrez constater que les valeurs entres lors de linstallation on bien t enregistres :

Ce genre de script peut avoir de multiple utilisation, par exemple vous pouvez ainsi configurer laccs
une base de donnes.
En poussant vos recherches vous pourrez essayer de crer votre base de donnes lors de
linstallation de votre application.
3.3.3 Les conditions de lancement
Lors dun dploiement sur une machine hte, il peut arriver que cette machine ne remplisse
pas les conditions ncessaires pour un dploiement sans entrave. Par exemple, la machine hte ne
dispose pas de la version adquate de IIS pour le bon fonctionnement de votre application. Afin de
palier ce genre de problme, ASP.NET nous permet de dfinir des conditions de lancement de notre
installation en ajoutant des entres registre.
XML de web.config section appSettings
<add key="Accueil" value="Bonjour" />
<add key="Prenom" value="TITI" />
<add key="Nom" value="Toto" />







21 Dploiement et monitoring
20 octobre 2008

Pour grer ces conditions, faites un clic droit sur votre projet de dploiement Afficher
Conditions de lancement.
Voici quoi doit votre gestionnaire de conditions de lancement :

Vous pouvez constater que notre gestionnaire se prsente en deux parties :
- Recherche de lordinateur cible ;
- Conditions de lancement.
Nous allons voir comment utiliser ces deux sections.
Nous nentrerons pas dans les dtails de lutilisation de cet outil nous tenons simplement vous
informer de son existence et vous en expliquer les principes de bases. Si vous dsirez avoir davantage
dinformations ce sujet veuillez vous rfrer au site du MSDN.
Recherche de lordinateur cible :
Cette section va nous permettre de vrifier quun fichier, une cl registre ou encore un
lment de Windows Installer sont bien prsents.
En effectuant un clic droit sur le dossier Recherche de lordinateur cible, vous aurez le choix entre
plusieurs possibilits :
- Ajouter une recherche de fichier ;
- Ajouter une recherche dans le registre ;
- Ajouter une recherche dans Windows Installer.
Chacun de ces lments disposent de proprits diffrentes dont les dnominations sont en gnral
trs explicites.
En cas de recherche infructueuse selon vos paramtres, linstallation renverra un message derreur et
ne sexcutera pas.
Conditions de lancement :
Cette section va nous permettre de tester la version dun lment de votre choix avec des
conditions prdfinies dans ASP.NET.
Pour dfinir des conditions de lancement faite un clic droit sur Conditions de lancement Ajouter
une condition de lancement.


22 Dploiement et monitoring
20 octobre 2008

Une fois votre condition ajoute vous avez plusieurs proprits grer dont lune dentre elle est
Condition. La gestion de cette proprit ne se fait pas au hasard et il existe des rfrences prdfinies
qui vont nous permettre de grer facilement notre condition.
Voici un tableau les listant :
Condition Description
VersionNT
Fait rfrence la version du systme dexploitation Microsoft Windows NT,
comprenant les versions Windows 2000, XP, 2003 Server, Vista et 2008 Server.
Version9X
Fait rfrence aux anciennes versions des systmes dexploitation Microsoft
Windows tels que Windows 95, 98 et Me.
ServicePackLevel Numro de la version du Service Pack.
WindowsBuild Numro de Build du systme dexploitation.
SystemLanguageID Rcupre la langue par dfaut du systme.
AdminUser
Permet de dterminer si lutilisateur excutant linstallation dispose des
privilges dadministrations.
PhysicalMemory Vrifie la taille de la mmoire RAM installe (en megabytes).
IISVERSION Vrifie la version de IIS si elle est installe.

Vous pouvez aussi effectuer des tests sur les variables denvironnement, pour cela il suffit de mettre
le symbole % juste avant votre variable denvironnement.
Exemple :
%HOMEDRIVE = "C:" Vrifiera si le disque hte dinstallation est bien C :
IISVERSION >= "#6" Vrifiera si la version de IIS est suprieure ou gale IIS 6.0
La proprit InstallUrl vous permettra de dfinir un emplacement ou lutilisateur pourra rcuprer le
composant manquant ou dont la version nest pas supporte.
La proprit Message vous permettra de dfinir un message derreur personnalis.






23 Dploiement et monitoring
20 octobre 2008

3.4 Le dploiement en ligne de commande
Cette partie sera trs courte et nest destine qu vous prsenter les intrts du dploiement
en ligne de commande en tant que solution alternative.
3.4.1 Dployer un fichier dinstallation MSI en ligne de commande
Il est possible de dployer notre application en ligne de commande en faisant appel notre
fichier dinstallation MSI gnr. Lune des raisons principales pour lesquelles cette mthode existe
rside dans le fait que nous navons pas toujours accs au Bureau Windows et sommes obligs
dexcuter un dploiement distance.
Voici comment se prsente la syntaxe de cette commande :
msiexec /i cheminDeVotrePackageMsi
Exemple :
msiexec /i "c:\Users\Nicolas\Documents\Visual Studio
2008\Projects\MonPremierSetup\MonPremierSetup\Debug\MonPremierSetup.msi"
Pour avoir davantage dinformations sur les options de dploiement dun package MSI, tapez dans la
console Windows :
msiexec /?
3.4.2 Dploiement dune application avec Xcopy
Le dploiement avec Xcopy est une simple copie de votre rpertoire dapplication WEB vers
un dossier cible. Avec cette mthode aucune source ne sera prcompile, ce qui ne prsente pas un
avantage. Cela dit cette mthode peut parfois nous sortir de situations problmatiques de
dploiement qui nont pas pues tre rsolues avec les package MSI.
Xcopy sutilise avec la console Windows, voici sa syntaxe :
Xcopy /S chemin_source chemin_destination
Loption /S permet de copier les rpertoires et sous-rpertoires non vides.
Exemple :
Xcopy /S "C:\Users\Nicolas\Documents\Visual Studio 2008\Projects\Test\Test"
C:\inetpub\wwwroot\Test
Pour avoir davantage dinformations sur les options de dploiement avec Xcopy, tapez dans la
console Windows :
Xcopy /?





24 Dploiement et monitoring
20 octobre 2008

4 Monitorer : Gnralits
Maintenant que nous savons comment dployer notre application web, il est galement utile
de savoir comment la monitorer. Ce processus consiste en la surveillance de tout ce qui pourrait se
passer pendant lexcution de lapplication web que a soit des erreurs dexcution, des
authentifications rates ou russies, etc. Tous les outils ncessaires au monitoring dapplication web
se trouvent dans lespace de nom System.Web.Management.
Pour cela, ASP.NET vous permet denregistrer les vnements de lapplication grce des
fournisseurs de stockage. Ces fournisseurs peuvent envoyer des donnes dans diffrents endroits :
- Dans un email, grce aux fournisseurs SimpleMailWebEventProvider et
TemplatedMailWebEventProvider.
- Dans une base de donnes SQL Server grce au fournisseur SqlEventProvider. Par dfaut, ce
fournisseur envoi des donnes dans la base de donnes prsente dans le dossier App_Data
du projet.
- Dans le journal dvnements Windows grce au fournisseur EventLogWebEventProvider. Ce
type de fournisseur enregistre toutes les erreurs gnres.
- Dans le systme WMI (Windows Management Instrumentation) grce au fournisseur
WmiWebEventProvider.
- Dans un fournisseur de donnes personnalis que vous pouvez crer en implmentant la
classe WebEventProvider ou BufferedWebEventProvider.
Chacun de ces fournisseurs vont utiliser des classes dcrivant les vnements enregistrer. Le
Framework ASP.NET fourni par dfaut une liste dvnements nomms Web<type>Event o
type est lun des vnements surveiller (par exemple : WebAuthenticationFailureAuditEvent
pour surveiller les tentatives dauthentifications rates). L encore, vous pouvez crer vos propres
vnements en hritant dune des classes Web<type>Event.
4.1 Explications par le code
Vous pouvez bien sur crer le systme de monitoring en passant par le code-behind de votre
application web ; mais ce nest pas la mthode la plus aise. Pour implmenter de faon simple un
systme de monitoring de votre application, nous allons plutt travailler sur une balise placer
lintrieur de la balise <System.web> de votre fichier de configuration web.config : La balise
<healthMonitoring>. Cette balise peut en contenir :
- Une balise <providers> contenant la liste des fournisseurs de donnes de monitoring
utiliser.
- Une balise <profiles> qui liste les intervalles de temps denregistrement des vnements
pour viter de surcharger la zone de stockage avec des messages redondants.
- Une balise <bufferModes> qui permet (un peu comme <profiles>) de placer les vnements
enregistrs dans un buffer avant de les envoyer au fournisseur de donne, toujours dans le
but dviter les messages redondants.
- Une balise <rules> qui permet relier les vnements surveills avec lendroit vers lequel ils
vont enregistrer des donnes.
- Une balise <eventMappings> qui permet de lier les classes dvnements surveiller avec
des noms.



25 Dploiement et monitoring
20 octobre 2008



Dans lexemple ci-dessus, nous avons simplement cr la surveillance du dmarrage et de larrt de
notre application Web et nous inscrivons les vnements dans le journal dvnements Windows.
Nous pouvons ensuite simplement accder aux informations enregistres en ouvrant le journal
dvnements. Pour cela, faites Menu Dmarrer Panneau de configuration Outils
dadministrations et lancez le raccourci Observateurs dvnements .

XML de web.config
<system.web>
<healthMonitoring>
<providers>
<clear/>
<add name="Fournisseur" type="System.Web.Management.EventLogWebEventProvider,
System.Web,Version=2.0.0.0,Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
<bufferModes>
<clear/>
</bufferModes>
<eventMappings>
<clear/>
<add name="Evenement"
type="System.Web.Management.WebApplicationLifetimeEvent,System.Web,Version=2.0.
0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" startEventCode="0"/>
</eventMappings>
<profiles >
<clear/>
<add name="ProfileEvent" maxLimit="Infinite" minInstances="1"
minInterval="00:00:30"/>
</profiles>
<rules>
<clear/>
<add eventName="Evenement" maxLimit="100" minInstances="1"
minInterval="00:00:00" name="Regle" profile="ProfileEvent"
provider="Fournisseur"/>
</rules>
</healthMonitoring>
</system.web>







26 Dploiement et monitoring
20 octobre 2008

Une fois la console MMC avec le composant lance, droulez Journaux Windows et slectionnez
Applications :

Ici, lvnement Web apparait trois fois car jai excut lapplication web deux fois, sans la fermer la
seconde fois. Dans lordre, jai donc :
- Notification de dmarrage de lapplication ;
- Notification darrt ;
- Notification de dmarrage.
Je peux galement double-cliquer sur une des notifications pour avoir un peu plus de dtails :



27 Dploiement et monitoring
20 octobre 2008

5 Conclusion
Au cours de ce chapitre, nous avons vu comment dployer une Application Web, nous avons vu
aussi comment la surveiller par le monitoring.
Les notions de dploiement sont trs importantes pour une entreprise et doivent tre sues et
assimiles. Lun des principes de base du dploiement est le gain de temps de mise en place. En
effet, un bon dploiement nest pas forcment rapide mais se doit de faire gagner du temps.
Quant au monitoring, surveiller son application pour vrifier son bon fonctionnement est ncessaire
dans les premiers temps. Ceci tant, termes, le monitoring vous permettra dtecter les attaques
malveillantes grce au systme de log (redmarrage intempestif de votre application par exemple).
Une notion bien connaitre donc.