如何检查应用程序池最后回收
如果登录回收站已打开,您可以在事件查看器中看到这一点。
如果它不是你可以使用性能计数器,看看过程,经过时间的W3WP.EXE代表您的应用程序池(这将是自上个循环的秒数)
在事件查看器中的何处? '应用程序'日志? `系统`日志?别的地方? – deadlydog 2017-01-26 22:35:58
你可以很容易地找到最新通过使用这个PowerShell的代码片段回收时间:
(Get-Process -Id <ProcessId>).StartTime
因此找到您的web应用程序的进程id在任务管理器。
首先通过工具>选择列添加以下列...:选择PID和命令行。
查找任何w3wp.exe进程,并通过检查命令行(应用程序池名称是其一部分)并记下其PID,找到您的应用程序。
然后运行PowerShell脚本找到最新的回电时间:
希望这有助于
这会给你的机器上所有的w3wp进程和其开始时间的列表。该ErrorAction防止抛出一个错误的命令行,如果没有网站被启动,因此没有W3WP过程中存在
ps w3wp -ErrorAction SilentlyContinue | select ProcessName, StartTime
测试服务器2012 R2使用PowerShell V4.0
,用一个命令使用得到的所有信息Get-WmiObject而不是get-process。启用
$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
对于它的工作,请确保您有 'IIS管理脚本和工具':
Get-WmiObject Win32_Process -Filter "name = 'w3wp.exe'" | Select-Object Name, @{"name"="ApplicationPool";expression={(($_).CommandLine).split('"')[1] }},@{"name"="Starttime";expression={$_.ConvertToDateTime($_.CreationDate)}}
获取工作进程的正常运行时间(推荐)。
其次,方法是使用事件日志,如果启用
Get-Eventlog -LogName system -Newest 1 -Source "WAS" -Message "*recycle of all worker processes in application pool '$poolName'*")
随着Get-Eventlog
,您可以使用-After/-Before
参数来进一步限制的结果。
要检查应用程序池在最后的“X”分钟循环,下面的PowerShell片断可以:在的Application_Start
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
}
}
认沽logging语句在Global.asax中,这是编程。如果您无法访问代码,Event Viewr将是您查看的好地方。[本文](http://blogs.msdn.com/b/johan/archive/2008/02/18/monitoring-application-pool- and-application-restarts.aspx)解释如何设置应用程序重新启动事件日志记录 – 2011-12-14 20:47:38
我问了一个[类似的问题](http:// stackoverflow。com/questions/5443356/how-to-tell-why-an-iis-application-pool-is-recycled),如果您处于无法访问事件日志的共享主机环境中,这可能很有用。 – 2012-08-07 10:36:24