是否有可能检查我上次回收应用程序池的时间,我想检查应用程序池上次回收的日期,有没有什么在IIS中可以获取此信息。如何检查应用程序池最后回收
回答
如果登录回收站已打开,您可以在事件查看器中看到这一点。
如果它不是你可以使用性能计数器,看看过程,经过时间的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
}
}
- 1. 回收应用程序池
- 2. Sharepoint Excel Services回收应用程序池
- 3. 扩展web.config应用程序池回收
- 4. ASP.NET应用程序池回收问题
- 5. IISExpress应用程序池回收
- 6. 通过WiX回收应用程序池
- 7. 如何跟踪Web应用程序中的应用程序池回收?
- 8. Autofac无法在应用程序池回收后解决
- 9. 在应用程序池回收后建立ODBC连接
- 10. “固定请求次数”之后的应用程序池回收
- 11. 在应用程序池回收后重新创建ISessionFactory
- 12. 应用程序池回收后Web服务请求超时
- 13. SignalR:应用程序池回收后如何重新获取客户端信息
- 14. 如何在事件日志中查找应用程序池回收
- 15. IIS应用程序池回收和本地程序集
- 16. 使用PowerShell回收IIS应用程序池:“异常调用回收”
- 17. 我们应该多久回收应用程序池?
- 18. 应用程序池回收和工作流程
- 19. 回收应用程序池对应用程序意味着什么
- 20. 在IIS应用程序池回收期间调试应用程序行为
- 21. .NET应用程序失败 - 通过回收应用程序池解决
- 22. 使用Powershell查找网站,应用程序池和回收计划
- 23. 如何以编程方式回收.net Web应用程序自己的应用程序池?
- 24. ASP.NET - 回收应用程序池指示更大的问题?
- 25. 强制Azure回收应用程序池而不仅仅是AppDomain
- 26. 应用程序池回收中的奇怪内存增加
- 27. Appfabric缓存和应用程序池的回收
- 28. 什么能导致IIS应用程序池回收?
- 29. Signalr坠崖永远IIS应用程序池回收
- 30. Sharepoint农场解决方案回收哪个应用程序池?
认沽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