各位的Global.asax中的Application_End(object sender, EventArgs e) 方法中的能不能执行
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Context.Server.MapPath("~/log.txt"), true, Encoding.UTF8))
{
sw.WriteLine("log:" + DateTime.Now + "IIS系统进程回收");
}
我在 log.txt 这个文件中一直找不到对应的文字
而在Application_Start(object sender, EventArgs e)方法中能执行!
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Context.Server.MapPath("~/log.txt"), true, Encoding.UTF8))
{
sw.WriteLine("log:" + DateTime.Now + "IIS系统进程回收");
}
我在 log.txt 这个文件中一直找不到对应的文字
而在Application_Start(object sender, EventArgs e)方法中能执行!
网络程序中,Application_End是程序结束时才触发的,而程序结束不是关闭浏览器,而是在服务器端停止程序。
应该是没有程序结束,所以不会运行到这。
建议写到Session_End事件里。
我只是想记录IIS系统自动回收网站进程的时间...注意只自动回收网站进程....
我只是想记录IIS系统自动回收网站进程的时间...注意只自动回收网站进程....
我的log.txt记录了很多次的启动信息...就是没有记录IIS自动回收的信息...就那么简单的一个问题...
不知道你的关闭网站是什么意思...假设只有你一个用户在访问你的网站 就算你用IE打开你的网址...你一直没有进行其他页面的浏览..时间一长.IIS也会自动回收的你网站进程....而如果是服务器端地址IIS...压根就触发不了...这个方法..
又来一个没看明白问题就回帖的猩猩 进程没有回收..怎么会执行第二次 Application_Start
我都已经说了...我的目的是获取IIS自动回收网站进程的时间...居然还会有人说我没有理解关闭浏览器和在服务器端停止程序
真当是无语....
Global.Application_End 方法
Handler for an application end event. Raised by HttpApplication.
------------当一个程序结束时触发的事件。竹子的理解应该是一个WEB程序被结束(关闭)时触发的,而不是楼主解理的IIS回收进程。
即,在IIS里停止该网站,或者关闭整个IIS,就会触发该事件。BTW:在application_end里,Context对象是null,你不可以在该事件里引用,当然,context下的所有对象都是未初始化的,你想调用server.mappath映射路径,是不能实现的,你必须通过其它方法映射路径,或者将路径在application_end触发之前就保存路径,比如经 application_start时就保存路径。