begin process at 2012 05 27 05:54:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Administration

 > ASP.NET - COMMENT SURVEILLER LE PROCESS ASPNET_WP VIA UNE PAGE WEB

ASP.NET - COMMENT SURVEILLER LE PROCESS ASPNET_WP VIA UNE PAGE WEB


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Administration Source .NET ( DotNet ) Niveau :Expert Date de création :03/09/2003 Date de mise à jour :03/09/2003 21:50:18 Vu / téléchargé :13 861 / 422

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Dans de nombreuses configurations, il peut être utile d'afficher les informations pour la surveillance de son serveur WEB (cas d'hébergement par exemple) afin de voir les montées en charge, l'utilisation du framework, ...

Dans ce but, je vous livre une simple page ASPX, qui contient le nécessaire pour afficher les informations sur les 10 derniers process ASPNET ainsi que l'Uptime, IP, ...

Si une info particulière vous intéresse, n'hésitez pas à me le demander, ou développez le en vous inspirant de ce qui est dans cette page.

Source

  • <%@ Page Language="VB" ClientTarget="downlevel" %>
  • <%@ Import Namespace="System.Web" %>
  • <%@ Import Namespace="System.Net.Sockets" %>
  • <%@ Import Namespace="System.Net" %>
  • <%@ Import Namespace="System.Diagnostics" %>
  • <script language="VB" runat="server">
  • ' -----------------------------------------------------
  • Sub Page_Load(obj As object, e As eventargs)
  • ' Chargement au démarrage de la page pour récuperer les informations
  • AffProcessInfo()
  • LabelMachine.Text = Server.MachineName
  • LabelHostname.Text = Request.ServerVariables("SERVER_NAME")
  • LabelIP.Text = IP(Server.MachineName)
  • LabelUptime.Text = RecupUtime()
  • End Sub
  • ' -----------------------------------------------------
  • Private Sub AffProcessInfo()
  • ' Lancement de la récupération des informations depuis le Serveur
  • ' Déclaration des Objets nécessaires
  • Dim mP As New ProcessModelInfo()
  • Dim mPITab As ProcessInfo()
  • Dim mPi As ProcessInfo
  • Dim trET As New TableRow()
  • Dim i As Integer = 1
  • ' Chargement de l'historique (les 10 derniers lancements) des données sur le process ASP_NET
  • mPITab = mP.GetHistory(10)
  • ' Mise en forme de la Premiere ligne
  • trET.BackColor = System.Drawing.Color.Beige
  • trET.Font.Bold = True
  • trET.ForeColor = System.Drawing.Color.DarkBlue
  • ' Ajout des Noms de Colonne et Ajout de la ligne dans le Tableau
  • AddCell(trET, "N°")
  • AddCell(trET, "ID")
  • AddCell(trET, "Age")
  • AddCell(trET, "Mémoire max utilisée")
  • AddCell(trET, "Nbr requêtes")
  • AddCell(trET, "Date début")
  • AddCell(trET, "Statut")
  • AddCell(trET, "Raison échec")
  • tbProcess.Rows.Add(trET)
  • ' Boucle de lecture et d'affichage dans le tableau des Informations sur les Process
  • For Each mPi In mPITab
  • Dim tr As New TableRow()
  • AddCell(tr, i) ' Ajoute le N° de l'historique
  • AddCell(tr, mPi.ProcessID.ToString) ' Affiche l'ID du process
  • AddCell(tr, AfficheAge(mPi.Age)) 'Affiche l'âge du process en Détail
  • AddCell(tr, AfficheTaille(mPi.PeakMemoryUsed)) 'Affiche la mémoire maximale utilisée
  • AddCell(tr, mPi.RequestCount.ToString) 'nombre de requête traitées
  • AddCell(tr, mPi.StartTime.ToString) 'la date du début du process
  • AddCell(tr, mPi.Status.ToString) 'son statut
  • AddCell(tr, mPi.ShutdownReason.ToString) 'la raison de son arrêt
  • tbProcess.Rows.Add(tr)
  • i += 1
  • Next
  • End Sub
  • ' -----------------------------------------------------
  • Private Sub AddCell(ByVal tr As TableRow, ByVal sM As String)
  • 'Ajoute une cellule dans la ligne du tableau
  • Dim td As New TableCell()
  • td.Text = sM
  • tr.Cells.Add(td)
  • End Sub
  • ' -----------------------------------------------------
  • Private Function AfficheAge(ByVal LeTimeSpan As TimeSpan) As String
  • ' Affiche le temps en détail de vie du process ASPNET
  • Dim Retour As String = ""
  • Retour = TestZero(LeTimeSpan.Days, "J", False)
  • Retour &= " " & TestZero(LeTimeSpan.Hours, "H", False)
  • Retour &= " " & TestZero(LeTimeSpan.Minutes, "M", False)
  • Retour &= " " & TestZero(LeTimeSpan.Seconds, "S", False)
  • Retour &= " " & TestZero(LeTimeSpan.Milliseconds, "mS", False)
  • Return Retour
  • End Function
  • ' -----------------------------------------------------
  • Private Function AfficheTaille(ByVal TailleMemoire As Integer) As String
  • ' Crée le détail de la taille des données
  • Dim TailleGO As Double = 0
  • Dim TailleMO As Double = 0
  • Dim TailleKO As Double = 0
  • Dim Retour As String = ""
  • TailleGO = (TailleMemoire / 1048576) ' Nombre de Giga Octets
  • TailleMO = (TailleGO - Int(TailleGO)) * 1024 ' Nombre de Mega Octets
  • TailleKO = (TailleMO - Int(TailleMO)) * 1024 ' Nombre de Kilo Octets
  • Retour = TestZero(TailleGO, "Go", False)
  • Retour &= " " & TestZero(TailleMO, "Mo", False)
  • Retour &= " " & TestZero(TailleKO, "Ko", False)
  • Return Retour
  • End Function
  • ' -----------------------------------------------------
  • Private Function TestZero(ByVal Lavaleur As Integer, ByVal LUnite As String, ByVal TestPlur As Boolean) As String
  • ' Vérifie la valeur est supérieure à 1 et affiche le pluriel
  • If Lavaleur > 1 And TestPlur = True Then
  • Return Lavaleur & " " & LUnite & "s"
  • ElseIf Lavaleur > 0 Then
  • Return Lavaleur & " " & LUnite
  • End If
  • End Function
  • ' -----------------------------------------------------
  • Private Function IP(ByVal adIp As String) As String
  • ' Recupère l'IP de la machine
  • Dim myIP As IPHostEntry = Dns.Resolve(adIp)
  • Dim sIP As String
  • 'sIP = ("HostName :" & myIP.HostName & "<br>")
  • sIP += (myIP.AddressList(0).ToString)
  • Return sIP
  • End Function
  • ' -----------------------------------------------------
  • Private Function RecupUtime() As String
  • ' Recupère l'Uptime de la machine
  • Dim retour As String = ""
  • Dim pc As New PerformanceCounter("System", "System Up Time")
  • pc.NextValue()
  • Dim ts As TimeSpan = TimeSpan.FromSeconds(pc.NextValue())
  • retour = TestZero(ts.Days, "Jour", True)
  • retour &= " " & TestZero(ts.Hours, "Heure", True)
  • retour &= " " & TestZero(ts.Minutes, "Minute", True)
  • retour &= " " & TestZero(ts.Seconds, "Seconde", True)
  • retour &= " " & TestZero(ts.Milliseconds, "MilliSeconde", True)
  • Return retour
  • End Function
  • ' -----------------------------------------------------
  • </script>
  • <html>
  • <head>
  • <title>Process Info</title>
  • </head>
  • <body bgColor="whitesmoke">
  • <form id="Form1" method="post" runat="server">
  • <P align="center"><asp:label id="Label1" runat="server" Width="100%" ForeColor="Navy" Font-Bold="True" Font-Names="Times New Roman" Font-Size="Medium" Font-Underline="True">Status des Derniers lancements du Process ASPNET</asp:label></P>
  • <br>
  • <table width="100%">
  • <tr>
  • <td width="20%"><b>Machine : </b></td>
  • <td><asp:Label id="LabelMachine" runat="server" Width="100%">Label</asp:Label></td>
  • </tr>
  • <tr>
  • <td width="20%"><b>Host Header Name : </b></td>
  • <td><asp:Label id="LabelHostname" runat="server" Width="100%">Label</asp:Label></td>
  • </tr>
  • <TR>
  • <td width="20%"><b>IP : </b></td>
  • <td><asp:Label id="LabelIP" runat="server" Width="100%">Label</asp:Label></td>
  • </TR>
  • <TR>
  • <td width="20%"><b>Uptime : </b></td>
  • <td><asp:Label id="LabelUptime" runat="server" Width="100%">Label</asp:Label></td>
  • </TR>
  • </table>
  • <br><p>
  • <asp:Table id="tbProcess" runat="server" CellPadding="1" BorderStyle="Double" BorderColor="Gray" BackColor="LightGray" ForeColor="Navy" HorizontalAlign="Center" Width="95%"></asp:Table></p> </form>
  • </body>
  • </html>
<%@ Page Language="VB" ClientTarget="downlevel" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Net.Sockets" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.Diagnostics" %>

<script language="VB" runat="server">

' -----------------------------------------------------
Sub Page_Load(obj As object, e As eventargs)
 ' Chargement au démarrage de la page pour récuperer les informations
 AffProcessInfo()
 LabelMachine.Text = Server.MachineName
 LabelHostname.Text = Request.ServerVariables("SERVER_NAME")
 LabelIP.Text = IP(Server.MachineName)
 LabelUptime.Text = RecupUtime()

End Sub

    ' -----------------------------------------------------
    Private Sub AffProcessInfo()
        ' Lancement de la récupération des informations depuis le Serveur

        ' Déclaration des Objets nécessaires
        Dim mP As New ProcessModelInfo()
        Dim mPITab As ProcessInfo()
        Dim mPi As ProcessInfo
        Dim trET As New TableRow()
        Dim i As Integer = 1

        ' Chargement de l'historique (les 10 derniers lancements) des données sur le process ASP_NET
        mPITab = mP.GetHistory(10)

        ' Mise en forme de la Premiere ligne
        trET.BackColor = System.Drawing.Color.Beige
        trET.Font.Bold = True
        trET.ForeColor = System.Drawing.Color.DarkBlue

        ' Ajout des Noms de Colonne et Ajout de la ligne dans le Tableau
        AddCell(trET, "N°")
        AddCell(trET, "ID")
        AddCell(trET, "Age")
        AddCell(trET, "Mémoire max utilisée")
        AddCell(trET, "Nbr requêtes")
        AddCell(trET, "Date début")
        AddCell(trET, "Statut")
        AddCell(trET, "Raison échec")
        tbProcess.Rows.Add(trET)

        ' Boucle de lecture et d'affichage dans le tableau des Informations sur les Process
        For Each mPi In mPITab
            Dim tr As New TableRow()

            AddCell(tr, i) ' Ajoute le N° de l'historique
            AddCell(tr, mPi.ProcessID.ToString) ' Affiche l'ID du process
            AddCell(tr, AfficheAge(mPi.Age)) 'Affiche l'âge du process en Détail
            AddCell(tr, AfficheTaille(mPi.PeakMemoryUsed)) 'Affiche la mémoire maximale utilisée
            AddCell(tr, mPi.RequestCount.ToString) 'nombre de requête traitées
            AddCell(tr, mPi.StartTime.ToString) 'la date du début du process
            AddCell(tr, mPi.Status.ToString) 'son statut
            AddCell(tr, mPi.ShutdownReason.ToString) 'la raison de son arrêt

            tbProcess.Rows.Add(tr)
            i += 1
        Next
    End Sub

    ' -----------------------------------------------------
    Private Sub AddCell(ByVal tr As TableRow, ByVal sM As String)
        'Ajoute une cellule dans la ligne du tableau
        Dim td As New TableCell()
        td.Text = sM
        tr.Cells.Add(td)
    End Sub

    ' -----------------------------------------------------
    Private Function AfficheAge(ByVal LeTimeSpan As TimeSpan) As String
        ' Affiche le temps en détail de vie du process ASPNET
        Dim Retour As String = ""
        Retour = TestZero(LeTimeSpan.Days, "J", False)
        Retour &= " " & TestZero(LeTimeSpan.Hours, "H", False)
        Retour &= " " & TestZero(LeTimeSpan.Minutes, "M", False)
        Retour &= " " & TestZero(LeTimeSpan.Seconds, "S", False)
        Retour &= " " & TestZero(LeTimeSpan.Milliseconds, "mS", False)

        Return Retour
    End Function

    ' -----------------------------------------------------
    Private Function AfficheTaille(ByVal TailleMemoire As Integer) As String
        ' Crée le détail de la taille des données 
        Dim TailleGO As Double = 0
        Dim TailleMO As Double = 0
        Dim TailleKO As Double = 0
        Dim Retour As String = ""

        TailleGO = (TailleMemoire / 1048576) ' Nombre de Giga Octets
        TailleMO = (TailleGO - Int(TailleGO)) * 1024 ' Nombre de Mega Octets
        TailleKO = (TailleMO - Int(TailleMO)) * 1024 ' Nombre de Kilo Octets

        Retour = TestZero(TailleGO, "Go", False)
        Retour &= " " & TestZero(TailleMO, "Mo", False)
        Retour &= " " & TestZero(TailleKO, "Ko", False)

        Return Retour
    End Function

    ' -----------------------------------------------------
    Private Function TestZero(ByVal Lavaleur As Integer, ByVal LUnite As String, ByVal TestPlur As Boolean) As String
        ' Vérifie la valeur est supérieure à 1 et affiche le pluriel
        If Lavaleur > 1 And TestPlur = True Then
            Return Lavaleur & " " & LUnite & "s"
        ElseIf Lavaleur > 0 Then
            Return Lavaleur & " " & LUnite
        End If
    End Function

    ' -----------------------------------------------------
    Private Function IP(ByVal adIp As String) As String
        ' Recupère l'IP de la machine
        Dim myIP As IPHostEntry = Dns.Resolve(adIp)
        Dim sIP As String
        'sIP = ("HostName :" & myIP.HostName & "<br>")
        sIP += (myIP.AddressList(0).ToString)

        Return sIP
    End Function

    ' -----------------------------------------------------
    Private Function RecupUtime() As String
        ' Recupère l'Uptime de la machine
        Dim retour As String = ""
        Dim pc As New PerformanceCounter("System", "System Up Time")
        pc.NextValue()

        Dim ts As TimeSpan = TimeSpan.FromSeconds(pc.NextValue())
        retour = TestZero(ts.Days, "Jour", True)
        retour &= " " & TestZero(ts.Hours, "Heure", True)
        retour &= " " & TestZero(ts.Minutes, "Minute", True)
        retour &= " " & TestZero(ts.Seconds, "Seconde", True)
        retour &= " " & TestZero(ts.Milliseconds, "MilliSeconde", True)

        Return retour
    End Function
    ' -----------------------------------------------------

</script>
<html>
<head>
<title>Process Info</title>
</head>
<body bgColor="whitesmoke">
 <form id="Form1" method="post" runat="server">
  <P align="center"><asp:label id="Label1" runat="server" Width="100%" ForeColor="Navy" Font-Bold="True" Font-Names="Times New Roman" Font-Size="Medium" Font-Underline="True">Status des Derniers lancements du Process ASPNET</asp:label></P>
  <br>
   <table width="100%">
   <tr>
    <td width="20%"><b>Machine : </b></td>
    <td><asp:Label id="LabelMachine" runat="server" Width="100%">Label</asp:Label></td>
   </tr>
   <tr>
    <td width="20%"><b>Host Header Name : </b></td>
    <td><asp:Label id="LabelHostname" runat="server" Width="100%">Label</asp:Label></td>
   </tr>
   <TR>
    <td width="20%"><b>IP : </b></td>
    <td><asp:Label id="LabelIP" runat="server" Width="100%">Label</asp:Label></td>
   </TR>
   <TR>
    <td width="20%"><b>Uptime : </b></td>
    <td><asp:Label id="LabelUptime" runat="server" Width="100%">Label</asp:Label></td>
   </TR>
  </table>
  <br><p>
  <asp:Table id="tbProcess" runat="server" CellPadding="1" BorderStyle="Double" BorderColor="Gray" BackColor="LightGray" ForeColor="Navy" HorizontalAlign="Center" Width="95%"></asp:Table></p> </form>
</body>
</html>
 

 Conclusion

Tout est dans le code.

Dans le ZIP, vous avez la version en un seul fichier ASPX a simplement placer sur le serveur, mais aussi le binome ASPX/ASPX.VB avec le code behind à insérer dans un projet existant.

Cette source est basée sur l'article très intéressant de c2i.fr visible ici :
- http://www.c2i.fr/code.aspx?IDCode=361

Bon coding.

Romelard Fabrice (Alias F___)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source .NET (Dotnet) SHAREPOINT 2007 - OBTENIR LA LISTE DES WEBPARTS DANS UNE PAG...
Source .NET (Dotnet) SHAREPOINT 2007 - OBTERNIR LA LISTE DES FEATURES D'UN SITE
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES COLLATIONS SHAREPOINT...
Source avec une capture Source .NET (Dotnet) SHAREPOINT 2007 - CHARGER LA LISTE DES LANGUES INSTALLÉES DA...
Source .NET (Dotnet) C# - FONCTION TRÈS SIMPLE POUR ENVOYER UN MAIL VIA SMTP

 Sources de la même categorie

Source .NET (Dotnet) UTILISATION DES DATATABLES ET L'AFFICHAGE DU CONTENU DANS UN... par hedi_tounsi
Source .NET (Dotnet) RÉCUPÉRATION DES GROUPES AD D'UN USER EN ASPNET par DemonFire21
Source avec Zip Source avec une capture Source .NET (Dotnet) .NET2 GESTIONNAIRE DE DROITS DE FICHIERS AVEC SQL SERVER EN ... par gldfdp
Source avec Zip AUTHENTIFICATION D'UTILISATEURS AVEC BASE DE DONNÉES par Nurgle
Source .NET (Dotnet) CLASS : VALIDER UN LOGIN ET MOT DE PASSE SUR ACTIVE DIRECTOR... par Trinita16

Commentaires et avis

Commentaire de dionysos6868 le 27/04/2004 08:55:36

salut
ton code est tres interressant , je voudrais savoir si avec il est possible de regarder n'importe quel processus ?

est 'il possible de faire la meme chose pour regarder l'espace libre sur le disuqe dur (sachant que j'heberge sur mon ordinateur) .

merci de ton aide
10/10

Commentaire de cadouin le 13/05/2005 12:26:53

super ce code mais il marche pas sur mon serveur

Les informations de processus ne sont disponibles que si le modèle de processus ASP.NET est activé.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Web.HttpException: Les informations de processus ne sont disponibles que si le modèle de processus ASP.NET est activé.

comment active-t-on le processus asp.net
merci pour la réponse
mc

Commentaire de lesobreloic le 22/07/2005 15:20:45

Moi aussi snifff
-->>>

super ce code mais il marche pas sur mon serveur

Les informations de processus ne sont disponibles que si le modèle de processus ASP.NET est activé.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Web.HttpException: Les informations de processus ne sont disponibles que si le modèle de processus ASP.NET est activé.

comment active-t-on le processus asp.net
merci pour la réponse
mc

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,683 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales