IIS首次打开网页比较慢的处理方法
程序员文章站
2022-04-30 22:49:50
...
用ASP.net做了个小网站,调试时一切都很好。
发布到服务器上,发现过一阵子再打开页面,需要等10秒左右的时间。
根据网上的一些提示,检查了SQL等的处理,没发现什么明显的性能问题。
只好写日志进行调试。
再Global.asax中,加入如下代码:
protected String GetLogPath()
{
return Context.Server.MapPath("~/App_Data/Log/Application.log");
}
protected void Application_Start(object sender, EventArgs e)
{
var file = GetLogPath();
System.IO.File.AppendAllText(file, string.Format("{0} Application_Start \n", DateTime.Now));
}
protected void Session_Start(object sender, EventArgs e)
{
var file = GetLogPath();
System.IO.File.AppendAllText(file, string.Format("{0} Session_Start \n", DateTime.Now));
}
每次发现不到一小时就会有出现Application_Start,也就是网站重启了。
经过一些试探和研究,最终确定就是IIS在一段时间后,把网站给关了;应该说是从缓冲区清除了。需要把关闭缓冲区的时间调整的长一些。
打开IIS管理器,在左侧的界面上选“应用程序池”,里面会存在多个应用池,查看具体网站使用那个,在其上点右键,在出现的菜单上选择“高级设置”。
找到“闲置超时(分钟)”项,默认20分钟后,会关闭应用池,可根据情况改为其他值。
由于开发的网站访问量比较小,所以改为了600,即10小时无访问,关闭应用缓冲区,可以保证一天内不会出现多次打开网页等待的情况。
推荐阅读