Ble*_*ser 6 asp.net iis global-asax
我们有一个应用程序收集计数器统计信息,我们希望在执行iisreset命令后重置值,这就是全部.
微软表示Application_Start:
在请求ASP.NET应用程序中的第一个资源(例如页面)时调用.在应用程序的生命周期中, Application_Start方法仅被调用一次.您可以使用此方法执行启动任务,例如将数据加载到缓存中以及初始化静态值.
这就是我们目前的做法:
protected void Application_Start(object sender, EventArgs e)
{
_counters.Get<AutoCounter>("TAS:RequestCount").Reset();
_counters.Get<AutoCounter>("TAS:RequestTime").Reset();
_counters.Get<AutoCounter>("TAS:TimeBetweenErrors").Reset();
_counters.Get<AutoCounter>("TAS:ErrorCount").Reset();
}
Run Code Online (Sandbox Code Playgroud)
但是,它们会以意外的间隔重置.什么决定应用程序域的生命周期何时结束,并在下一个请求中调用此方法?
Web应用程序重新启动的原因有很多.该文章 包含以下部分名单.
web.config已编辑
machine.config已编辑
global.asax已被编辑
文件
在Web应用程序的bin 目录或
bin的子目录中更改
在Web应用程序目录中创建,重命名或删除目录
ASP.NET文件(aspx,asmx等)编辑(因此重新编译)
超过20次,在机器配置中默认设置为
名为numRecompilesBeforeApprestart 的元素
通过设置
machine.config中元素中的各种
属性
,这会影响
工作进程本身的重启/关闭.在Windows
2003上,当不使用IIS5隔离
模式(默认情况下不使用)时,将
忽略这些元素,而是
使用IIS管理器中的应用程序池中的设置
我的猜测是你的方法很好,但现在你真正想知道的是导致重启的原因以及你是否应该警惕.