Flux rss
Collection CommentCaMarche.net

ASP - La fichier global.asa

 

Introduction au fichier global.asa

Afin de permettre de configurer une application (un site web) avec des paramètres par défaut sans devoir modifier la configuration du serveur, le modèle ASP propose l'utilisation d'un fichier de configuration, nommé global.asa, qui, placé à la racine du site web, permet à son concepteur d'exécuter des instructions, d'initialiser des variables, avant ou après l'exécution d'un script.

Lorsque le fichier global.asa est modifié alors que le site est en production, le serveur attendra la fin des requêtes en cours avant de prendre en compte les modifications ! Il est ainsi probable de voir le serveur HTTP renvoyer des messages d'erreurs durant le temps de redémarrage de l'application nécessaire à la prise en compte de ces changements !

Le format du fichier global.asa

Le fichier global.asa est constitué de plusieurs sections optionnelles de 3 types. Les 3 types de sections sont les suivants :

  • une ou plusieurs sections <script>, permettant de gérer des événements liés aux objets Application et Session ;
  • une ou plusieurs sections <object>, permettant de créer ou de détruire des objets Application et/ou Session ;
  • une ou plusieurs sections de définition des bibliothèques de type.

Il est possible d'ajouter des commentaires dans le fichier global.asa en utilisant les balises de commentaire HTML :

<!-- Ceci est un commentaire HTML pouvant être inséré
dans le fichier global.asa -->

L'ordre dans lequel les sections sont définies n'a pas d'importance. De plus chaque section peut être ou non définie. Il peut également exister plusieurs sections de même type.

La section <script>

La section <script> permet de définir des événements liés aux objets Application et Session grâce à deux gestionnaires d'événements permettant de gérer deux états : le démarrage (OnStart) et l'expiration (OnEnd).

La section script permet ainsi de gérer quatre événements :

Evénement Description
Application_OnStart Il s'agit d'un événement déclenché au démarrage de l'application, c'est-à-dire à la mise en service du site web. Dans la mesure où aucun client n'est connecté au moment du lancement de l'application, il est impossible de faire appel au sein de cet événement aux objets Session, Request ou Response. L'appel à ces derniers provoque une erreur. Ainsi il est uniquement possible de faire appel aux objets Application et Server au sein de ce gestionnaire d'événement.
Application_OnEnd Ce gestionnaire d'événement sera appelé lors de la mise hors service de l'application (par exemple l'arrêt du serveur HTTP). De façon analogue au gestionnaire d'événement Application_OnStart, l'appel aux objets Session, Request ou Response provoque une erreur étant donné que ceux-ci ont été préalablement terminés. Seuls les objets Application et Server peuvent donc être utilisés au sein de cet événement.
Session_OnStart Cet événement est appelé au démarrage d'une session d'un utilisateur. Contrairement aux événements liés à l'objet Application, il est possible dans l'événement Session_OnStart de faire appel à tous les objets ASP (Request, Response, Session, Application, Server et ObjectContext).
Session_OnEnd L'événement Session_OnEnd est déclenché lors de la fermeture de la session par l'utilisateur, ou bien lorsque le temps alloué à la session est expiré. Ainsi, puisque cet événement peut être déclenché sans requête du client, seuls les objets Application, Session et Server peuvent être utilisés.

La section <Script> se construit de la manière suivante :

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

  Sub Application_OnStart
	'Code à placer éventuellement à cet emplacement
  End Sub
  Sub Application_OnEnd
	'Code à placer éventuellement à cet emplacement
  End Sub
  Sub Session_OnStart
	'Code à placer éventuellement à cet emplacement
  End Sub
  Sub Session_OnEnd
	 'Code à placer éventuellement à cet emplacement
  End Sub
</SCRIPT>

Voici un exemple d'utilisation du fichier global.asa servant à afficher sur le site le nombre de connectés simultanés. Sera considéré comme connecté tout utilisateur ayant fait une requête dans les 15 minutes précédentes.

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

  Sub Application_OnStart
	'Initialisation du nombre de connectés
	Application("nb_connectes") = 0
  End Sub
  Sub Application_OnEnd
	'Code à placer éventuellement à cet emplacement
  End Sub
  Sub Session_OnStart
		Session("debut") = now()
	Application.Lock
	Application("nb_connectes") = Application("nb_connectes") + 1
	Application.UnLock
  End Sub
  Sub Session_OnEnd
	 'Code à placer éventuellement à cet emplacement
	Application.Lock
	Application("nb_connectes") = Application("nb_connectes") - 1
	Application.UnLock
  End Sub
</SCRIPT>

Pour afficher le résultat dans la page ASP, il suffira d'inclure la ligne suivante :

<% Response.Write(Application("nb_connectes")) %>

La section <object>

La section Object du fichier global.asa a pour but de permettre de déclarer des objets pouvant ainsi être mis à disposition de tous les visiteurs (en lui donnant comme portée l'objet Application) ou bien de chaque visiteur séparément (en lui donnant comme portée l'objet Session).

Les objets déclarés dans la section object ne sont pas instanciés avant d'être appelés dans un script, ainsi la mémoire n'est pas nécessairement allouée si elle n'a pas de raison de l'être.

Voici la structure d'une section Object :

<Object 	RunAt="Server"
				Scope="Session|Application"
				Id="Identifiant"
				{ProgId="ProgId"|ClassId="ClassId"}>

</Object>

L'attribut RunAt doit obligatoirement être égal à Server. L'attribut Scope définit la portée de l'objet. Si la portée est Application, l'objet ainsi défini sera partagé par tous les utilisateurs de l'application, par contre s'il s'agit de Session, chaque utilisateur bénificiera d'une instance particulière. Enfin l'attribut Id définit un identifiant permettant de faire appel à l'objet au sein des scripts, ProgId et ClassId permettent de faire appel à des identifiants respectivement de classe et de classe COM d'objets existants. Suivant que l'on fait référence à un objet COM ou non on utilisera l'un ou l'autre de ces attributs.

Il est impératif de ne pas imbriquer les sections Object et les sections Script !

Voici un exemple comprenant deux déclarations d'objets :

<Object 	RunAt="Server"
	Scope="Application"
	Id="Application_id"
	ClassId="Clsid:5DC843A2F1-3FC3-5DE4-432B-5A5C5A9F89ED">

</Object>

<Object 	RunAt="Server"
	Scope="Session"
	Id="Connection_id"
	ProgId="ADODB.Connection">

</Object>

Plus d'information



Dernière modification le mardi 14 octobre 2008 à 17:40:29.
Ce document intitulé « ASP - La fichier global.asa » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Problème variable dans GLOBAL.ASA (Résolu) Bonjour, J'ai un soucis avec le fichier GLOBAL.ASA. J'ai juste testé le tuto de ce site en faisant un copier/coller http://www.commentcamarche.net/contents/asp/aspglobal.php3 ça marche pas, ma variable "nb_connectes" s'affiche... www.commentcamarche.net/forum/affich-9578450-probleme-variable-dans-global-asa
Réseau samba / win XP et win2k (Résolu) Bonjour ! j'ai un soucis de réseau linux (debian etch) et clients windows XP pro SP2 et Windows 2000 Pro SP4. Je m'explique. Après avoir installé debian, samba et configurer le smb.conf dont voici le fichier : [global] workgroup = sph server... www.commentcamarche.net/forum/affich-3203485-reseau-samba-win-xp-et-win2k
ASP - Implantation du code Interprétation du code par le serveur Un script ASP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) stocké sur le serveur dans un fichier possédant l'extension... www.commentcamarche.net/contents/asp/aspcode.php3
[Aspirateur de pages HTML] Comment aspirer un site Web ?HTTrack est un excellent aspirateur, gratuit en licence GNU GPL (libre). HTTrack permet de télécharger un site web d'Internet vers votre disque dur, en construisant récursivement tous les répertoires, récupérant html, images et fichiers du serveur... www.commentcamarche.net/faq/sujet-2658-aspirateur-de-pages-html-comment-aspirer-un-site-web
Il est possible de récupérer le code source PHP d'un siteMythe Un utilisateur peut récupérer le code source PHP d'un site web comme il peut récupérer le code HTML. Réalité FAUX Explications Les fichiers PHP (ASP, JSP, etc.) sont des fichiers interprétés côté serveur, ce qui signifie que le serveur web... www.commentcamarche.net/faq/sujet-5613-il-est-possible-de-recuperer-le-code-source-php-d-un-site
[PHP] Upload de fichiersLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La... www.commentcamarche.net/faq/sujet-889-php-upload-de-fichiers
Installer Skype sur aspire one sous linux (Résolu)Bonjour, j'ai acheter le mardi le acer aspire one, et j'ai pu installer vlc en suivant les étapes suiventes: Ouvrir un terminal (ex: en entrant sur mes images, fichier, terminal) Puis tapez: su - en suite le mot de passe (sans qu'il... www.commentcamarche.net/forum/affich-7935218-installer-skype-sur-aspire-one-sous-linux
Comment reformater son Acer Aspire T650 (Résolu)Bonjour,moi j'ai acheter un Acer Aspire T650.La mon rêve allais bien jusqu'au jours (Il y a une semaine) que je suis plus capable t'ouvris mes fichier!Je sais qu'il a un programme avec Acer pour le reformater mais quand je... www.commentcamarche.net/forum/affich-5779353-comment-reformater-son-acer-aspire-t650
Aspirer un site complet (Résolu)Bonjour, je voudrai aspirer un site avec tous les fichiers qu'il contient, et je voudrai un bon logiciel pour le faire, merci de votre aide. www.commentcamarche.net/forum/affich-7674679-aspirer-un-site-complet
Télécharger ASPI DriversLe fichier wnaspi32.dll représente un pilote ASPI permettant à des logiciels de gravure de reconnaitre et de manipuler des graveurs de CD/DVD. WNASPI peut seulement être copié dans le répertoire des applications, mais pas dans un répertoire système. www.commentcamarche.net/telecharger/telecharger-186-aspi-drivers
Télécharger HTTrackHTTrack est un aspirateur de site très puissant et open source. Ses nombreuses options de configuration en font un outil de pointe : choix du type de fichier à télécharger et de leur taille maximale, nombre de téléchargements simultanés, ... De... www.commentcamarche.net/telecharger/telecharger-58-httrack
Télécharger Slide Show Movie Maker Slide Show Movie Maker est un programme de création de fichiers AVI à partir d'une série d'images JPG ou BMP. Les images auront un aspect professionnel avec des transitions en fondu entrant et sortant. La prise en main est très facile, en plus... www.commentcamarche.net/telecharger/telecharger-34055173-slide-show-movie-maker
ASP - L'objet ApplicationPrésentation de l'objet Application Le rôle de l'objet Application est de permettre le partage d'information entre plusieurs utilisateurs d'une application. Dans le modèle ASP, une application représente un ensemble de fichiers situés dans le même... www.commentcamarche.net/contents/asp/asp-application.php3
TCO (Total Cost of Ownership)Introduction au TCO Le TCO (Total Cost of Ownership, traduisez Coût total de possession) représente le coût global d'un bien (un système informatique par exemple) tout au long de son cycle de vie, en prenant non seulement en compte les aspects... www.commentcamarche.net/contents/systeme-d-information/tco.php3
TCO (Total Cost of Ownership)Introduction au TCO Le TCO (Total Cost of Ownership, traduisez Coût total de possession) représente le coût global d'un bien (un système informatique par exemple) tout au long de son cycle de vie, en prenant non seulement en compte les aspects... www.commentcamarche.net/contents/strategie/tco.php3