Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Newsletter | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Dév. Web PHP ASP XML XMLRAD Python Assembleur Autres Windows Linux
Accueil Java DotNET & C# Visual Basic C & C++ Delphi Pascal Access SQL & SGBD Oracle UML
FORUMS C/C++ F.A.Q C F.A.Q C++ F.A.Q VC++ F.A.Q BCB TUTORIELS C/C++ LIVRES C/C++ COMPILATEURS

 

Les Labs Microsoft

Section C# / Asp.Net du site http://phenix.developez.com

par Patrick VALERI

Plan du site - Autres sections

Labs ASP.NET v1.1 Aurélien Norie & Sébastien Bovo [Microsoft]

J'ai repris les codes d'origine VB.NET en C# et apporter quelques commentaires.

Index DotNet Lab suivant Lab précédent Dernier Lab

 

Lab08

But du Lab

Le but de ce Lab est d’utiliser la gestion de l’état des applications ASP.NET. Cet état peut se gérer au niveau application et au niveau session. L’utilisation sera faite des différents modes de stockage de l’état d’application. Enfin, la gestion des événements de l’application sera faite dans le fichier Global.asax.

Exercice 1 – Gestion de l’état d’application

  • A l’aide de Visual Studio .NET, créer une nouvelle application Web ASP.NET en Visual Basic : « http://localhost/08VBEtatApplication »
  • Ajouter deux zones de texte (« TextBox1 » et « TextBox2 ») et deux boutons (« Button1 » et Button2 ») :
  • Double-cliquer sur « Button1 » et ajouter le code suivant :

Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Session("TestVariable") = TextBox1.Text

End Sub

  • Double-cliquer sur « Button2 » et ajouter le code suivant :

Private Sub Button2_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

TextBox2.Text = Session("TestVariable")

End Sub

  • Naviguer sur la page
  • Entrer un texte dans le premier contrôle « textbox » et cliquer sur le bouton correspondant
  • Cliquer maintenant sur le deuxième bouton

Exercice 2 – Session SQLServer

  • Lancer « l’Analyseur de requêtes » de SQL Server. Se connecter au serveur local avec le nom « SA », et mot de passe « EDUCATION »
  • Activer la commande « Fichier/Ouvrir » :

« C:\Windows\Microsoft.NET\Framework\v1.1.4322\InstallSqlState.sql »

  • Exécuter le contenu SQL de ce fichier

Remarque : pour désinstaller, répéter la manipulation avec le fichier:

« C:\Windows\Microsoft.NET\Framework\v1.1.4322\UninstallSqlState.sql »

  • Modifier le fichier Web.config comme suit afin de préciser que l’état de l’application sera stocké au niveau du serveur SQL local, puis enregistrer :

< sessionState

mode ="SQLServer"

stateConnectionString ="tcpip=127.0.0.1:42424"

sqlConnectionString ="data source=127.0.0.1;user id=sa;password=EDUCATION"

cookieless ="false"

timeout ="20"

/>

  • Depuis l’Analyseur de requêtes de SQL Serveur, exécuter le code SQL suivant sur la base tempdb :


  • Sans recompiler, tester depuis le navigateur

  • Exécuter à nouveau la requête SQL :

- Observer que la variable de Session est stockée dans la table « ASPStateTempSessions » de la base « tempdb ».


Exercice 3 – Session StateServer

  • Dans Visual Studio .NET, éditer le fichier Web.config et modifier le comme suit :

< sessionState

mode ="StateServer"

stateConnectionString ="tcpip=127.0.0.1:42424"

sqlConnectionString ="data source=127.0.0.1;Trusted_Connection=yes"

cookieless ="false"

timeout ="20"

/>

  • Sans recompiler, tester depuis le navigateur

 

  • Démarrer le service ASPNET State Service depuis la console d’administration ou en ligne de commande :

  • Rafraîchir la page :


Exercice 4 – Global.asax (Application_Start et Application_End)

  • Ouvrir le fichier « Global.asax » et modifier le code comme suit :

Sub Application_Start( ByVal sender As Object, ByVal e As EventArgs)

' Se déclenche lorsque l'application est démarrée

Dim fichier As System.IO.TextWriter = System.IO.File.AppendText("C:\InetPub\wwwroot\08VBEtatApplication\Application.log")

fichier.WriteLine( String.Format("L'application Web a démarré à {0}", DateTime.Now))

fichier.Close()

End Sub

Sub Application_End( ByVal sender As Object, ByVal e As EventArgs)

' Se déclenche lorsque l'application se termine

Dim fichier As System.IO.TextWriter = System.IO.File.AppendText("C:\InetPub\wwwroot\08VBEtatApplication\Application.log")

fichier.WriteLine( String.Format("L'application Web s'est arrêtée à {0}", DateTime.Now))

fichier.Close()

End Sub

  • Afin que la création et modification du fichier de log soit possible, il importe d’ajouter les permissions de lecture/écriture au compte « Service réseau » (pour Windows 2003 Serveur, ou le compte « ASPNET » pour Windows 2000 et Windows XP) sur le répertoire « C:\InetPub\wwwroot\08VBEtatApplication »
  • Recompiler le code. Effectuer plusieurs tentatives d’arrêts/redémarrages du serveur IIS (« net stop W3SVC » et « net start W3SVC ») entre mêlés d’une navigation sur la page WebForm1.aspx
  • Regarder le fichier « Application.log »


Exercice 5 – Global.asax (Session_Start et Session_End)

  • Modifier le code comme suit :

Sub Session_Start( ByVal sender As Object, ByVal e As EventArgs)

' Se déclenche lorsque la session est démarrée

Dim fichier As System.IO.TextWriter = System.IO.File.AppendText(("C:\InetPub\wwwroot\08VBEtatApplication\Application.log"))

fichier.WriteLine( String.Format("Nouvelle session {0} créée le {1}", Session.SessionID, DateTime.Now))

fichier.Close()

End Sub

Sub Session_End( ByVal sender As Object, ByVal e As EventArgs)

' Se déclenche lorsque la session se termine

Dim fichier As System.IO.TextWriter = System.IO.File.AppendText(("C:\InetPub\wwwroot\08VBEtatApplication\Application.log"))

fichier.WriteLine( String.Format("La session {0} a été detruite le {1}", Session.SessionID, DateTime.Now))

fichier.Close()

End Sub

- Compiler le code et naviguer sur la page WebForm1.aspx


Exercice 6 – Global.asax (Application_BeginRequest et Application_EndRequest)

  • Modifier le code comme suit :

Sub Application_BeginRequest( ByVal sender As Object, ByVal e As EventArgs)

' Se déclenche au début de chaque demande

Response.Write("<H3>Ce header a été ajouté par l'événement Application_BeginRequest</H3>")

End Sub

  • Compiler et naviguer sur la page WebForm1.aspx
  • Constater que ce header est ajouté pour toute page de l’application


Exercice 7 – Global.asax (Application_Error)

  • Ajouter une nouvelle page « WebForm2.Aspx » au projet
  • Modifier le code comme suit afin de générer un exception :

Private Sub Page_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Throw New System.DivideByZeroException("Division par zéro")

End Sub

  • Ajouter une nouvelle page « Erreur.aspx » et ajoutez un label « Label1 » :

 

  • Modifier le fichier « Global.asax » comme suit :

Sub Application_Error( ByVal sender As Object, ByVal e As EventArgs)

' Se déclenche lorsqu'une erreur se produit

Server.Transfer("Erreur.aspx", True)

End Sub

  • Compiler et naviguer sur la page « WebForm2.aspx »


Ce document est issu de http://phenix.developpez.com/ et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Vos questions techniques : forum d'entraide C & C++ - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2004 www.developpez.com

Analyse et mesure de frequentation internet par


hit-parade