asp.net - 记录 IIS 应用程序池启动、关闭和回收

标签 asp.net iis application-pool

我的应用程序正在共享托管环境中运行。我的应用程序有一个专用的应用程序池。我一直在对第一次访问和预编译性能进行一些测试,并一直在跟踪我的应用程序何时启动和关闭。

在我的 Global.asax 中,我在 Application_Start 和 Application_End 中有一些日志记录代码。我通常可以从日志中看到应用程序空闲并关闭时,然后有人访问并且它会重新启动。

但是,我也看到记录了一次关闭,然后大约 13 分钟后再次关闭的情况;中间没有启动。

我还看到连续出现两家初创公司的情况。我猜这些可能是回收,但为什么没有关闭日志条目?

我真正想知道是否有更好的方法来跟踪我的应用程序何时启动、何时关闭以及是否由于空闲池或回收而关闭。我无权访问 Windows 事件日志,因此如果可能的话,我需要从我的应用程序执行此操作。

最佳答案

Application_Start 和 Application_End 在您的应用程序中每个生命周期只能调用一次,MSDN confirms this

在不了解您的托管环境的情况下,您的网络主机可能会在多个工作池或 IIS 实例上运行您的网站。您的应用程序池也可能由于池中的其他应用程序而意外崩溃。

如果无法访问事件日志或基本 Web 主机控制面板以外的任何内容,最好的日志记录方式就是使用 Global.ASAX 现在正在执行的操作

关于asp.net - 记录 IIS 应用程序池启动、关闭和回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403838/

相关文章:

asp.net - 在本地解析Docker主机名时HttpClient花费太多时间

url - 什么改变了请求的 URL?

asp.net - IIS7 : set "no-cache" for all aspx pages but not images/css/js

Asp.NET Web API - 405 - 不允许用于访问此页面的 HTTP 动词 - 如何设置处理程序映射

IIS 应用程序池在 Windows 10 中的 32 位模式下失败

asp.net - Oracle 不会释放或终止我的 ASP.NET 应用程序池中的非事件进程和/或 session

c# - 在 Vs 2003 IDE 中查看数据集内容的最佳方式是什么

c# - 更改 Html.TextBox 的大小

javascript - ListView 内可折叠面板的平滑动画

iis - PowerShell:检索AppPool中的应用程序数量