48 votes

Comment vérifier le dernier recyclage du pool d'applications

Est-il possible de vérifier quand j'ai recyclé le pool d'applications la dernière fois, je veux vérifier la date à laquelle mon pool d'applications a été recyclé pour la dernière fois, y a-t-il quelque chose dans IIS qui me permette d'obtenir cette information ?

0 votes

Mettez la déclaration de journalisation dans Application_Start dans Global.asax, c'est-à-dire de manière programmatique. Event Viewr sera un bon endroit pour regarder si vous n'avez pas accès au code. Cet article expliquer comment configurer l'enregistrement des événements de redémarrage de l'application

1 votes

J'ai demandé à un question similaire ce qui peut être utile si vous êtes dans un environnement d'hébergement partagé où vous ne pouvez pas accéder au journal des événements.

0voto

sahilsk Points 53

Obtenir le temps de fonctionnement du processus de travail (recommandé) :

$poolName = <your pool name goes here eg. DefaultPool>
$poolProcess =(gwmi -NS 'root\WebAdministration' -class 'WorkerProcess' | select AppPoolName,ProcessId | Where-Object { $_.AppPoolName -eq $poolName } )

$lastStartTime=(Get-Process -Id $poolProcess.ProcessId).StartTime
write-output $lastStartTime

Pour que cela fonctionne, assurez-vous que l'option 'IIS management scripts and tools' est activée.

enter image description here

Deuxièmement, on utilise le journal des événements, s'il est activé.

Get-Eventlog -LogName system -Newest 1 -Source "WAS" -Message "*recycle of all worker processes in application pool '$poolName'*")

Avec Get-Eventlog vous pouvez utiliser -After/-Before pour limiter davantage le résultat.

Pour vérifier si le pool d'applications a été recyclé au cours des X dernières minutes, l'extrait powershell suivant peut être utilisé :

function isRecycledInLastNMinutes($appPoolName, $lminutes){
    $beforeDate = Get-Date -format 'u'
    $afterDate = $beforeDate.addMinutes(-$lminutes)
    $result = (Get-Eventlog -LogName system -Newest 1 -Source "WAS" -After $afterDate -Before $beforeDate -Message "*recycle of all worker processes in application pool '$appPoolName'*")
    if( $result.length -eq 1){
        return $true
    }else{
        retrun $false
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X