解决ASP.Net第一次访问慢的处理(IIS8)

本篇经验以IIS8,Windows Server 2012R2做为案例。

IIS8 运行在 Windows Server 2012 and Windows 8 版本以上的平台上。

IIS中应用程序池和网站是单独存在的,但是网站运行必须建立在对应的应用程序池启动的前提下。

默认情况下,应用程序池在不活动情况下(无请求操作),一段时间后,将被IIS自动回收掉。

IIS8 自带应用程序初始化工具包,IIS7.5要搜索独立安装包进行安装,低于7.5的暂时不支持IIS自动初始化。

本篇经验中的方法能解决ASP.Net第一次访问慢,间隔一段时间后,又访问慢的问题。

1、安装IIS应用程序初始化功能,如下图所示:

2、编辑网站对应应用程序池启动模式,操作路径:应用程序池 -> 网站对应程序池 -> 右键,高级设置 ->选择,启动模式 AlwaysRunning,如下图所示:

3、开启对应网站预加载,操作路径:网站 -> 对应网站 -> 右键,高级设置 ->选择,预加载已启用 True,如下图所示:

4、设置配置编辑器,编写默认预加载请求,打开配置编辑器,如下图所示:

5、在左上角配置节点选择system.webServer/applicationInitialization,其他配置如红圈中,如下图所示:

6、在集合中添加一个初始化请求地址(用于IIS初始化默认请求地址),添加完成后,点击配置界面右侧的应用按钮,并重启应用程序池和网站,如下图所示:

7、总结:

(1)原理说明:

IIS应用初始化会在网站第一次创建后或者对应网站的应用程序池回收后,自动开启新程序池,并启动网站初始化,模拟一次正常请求,使网站一直处于在线状态。(此流程可以借助第三方工具或者服务模拟网站请求达到相同目的)

(2)配置说明:

 (a)、启用应用程序池(AlwaysRunning):保证应用程序池在第一次创建或者被回收后,能自动再次重启运行。

 (b)、启用网站程序预加载(true):保证程序池在启动过后,网站能响应预加载动作。

 (c)、配置网站默认预加载路径:保证程序在程序池启动后,网站预加载过程中,能快速编译程序并进驻内存,保证请求快速响应。

时间: 2024-10-21 23:25:19

解决ASP.Net第一次访问慢的处理(IIS8)的相关文章

使用ASP.NET 4的自动启动特性,解决ASP.NET第一次访问速度慢问题

些web应用在可以处理用户访问之前,需要装载很多的数据,或做一些花费很大的初始化处理.今天使用 ASP.NET 的开发人员经常使用应用的Global.asax 文件中的 “Application_Start”事件处理函数来做这些工作(该事件是在第一个请求执行时触发的).他们要么设计定制脚本,周期性地向应用发假的请求,来“唤醒它(wake it up)”,从而在客户访问之前执行这个代码,或者就让那不幸的第一个访问者等着这个逻辑执行完才处理其请求(这可以给这些用户造成很长的耽搁). ASP.NET

ASP.NET 预编译命令(解决发布后第一次访问慢问题)

ASP.NET 编译工具 (Aspnet_compiler.exe) 官方说明 新建bat文件 @echo off   CD /d C:\Windows\Microsoft.NET\Framework\v2.0.50727   aspnet_compiler -p E:\wwwroot\站点主目录 -v /   echo 命令执行成功!   pause 请注意,上面的v2.0.50727代表项目的.NET版本,可根据项目版本替换成以下版本 v2.0.50727 v3.0 v3.5 v4.0.30

解决linux部署项目后,第一次访问初始化数据源的时候很慢的问题

先说一下场景 测试环境是linux - centos6.5,项目是分布式的,分别搭建到linux上 数据货使用的是阿里巴巴数据源 每次重启后的第一次访问会比较慢,查看日志发现 卡在这个地方 ...{dataSource-1} inited... 网上找了一些问题,发现有个别人有这问题但是都没解决,后来都换了数据源,我觉得这个问题不是数据源的问题 猜测是linux或者mysql问题 首先修改linux配置,由于每次使用ssh登录会很慢,就修改了配置,登录速度提升,但是这不是根本原因 修改mysql

[IIS][ASP.NET]“拒绝访问临时目录”的解决方法

除了设置windows临时目录权限外,还有一种原因:后来在应用程序池设置中将"加载用户配置文件"(Load User Profile)设置为true,问题就解决. [IIS][ASP.NET]"拒绝访问临时目录"的解决方法,布布扣,bubuko.com

.NET网站自动浏览器分享,解决IIS6应用池回收后第一次访问慢问题

.NET开发的网站,如果不是使用预编译发布,网站会在iis6应用池回收后第一次访问很慢,为了解决这个问题,今天写了一个自动浏览的工具,现在分享给大家,界面如下. 关键部分源码 //手动点击浏览 private void btnBrowsing_Click(object sender, EventArgs e) { if (btnBrowsing.Enabled == true && chkEnableAutomaticBrowsing.Checked == true) { btnBrows

26种提高ASP.NET网站访问性能的优化方法 .

1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求. 连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能.因此,在建立数据库连接后只有在真正需要操作时才打开连接,使用完

彻底解决ASP.NET MVC 3 404错误码返回302的问题

转自:http://blog.csdn.net/mycloudke/article/details/9746333 404状态码:,意味着当在页面上显示用户点击不存在,提高用户体验度,搜索引擎会放弃这个页面索引. 302状态码:搜索引擎将继续指数,这将导致大量不同的链接指向同一个页面,它将影响搜索引擎对站点的信任度. http://www.cloudke.com.cn/ 后面随便带些参数或者不存在的文件名,然后跳转到自定义错误页,但返回的状态是302. 解决办法: 第一步: 将web.confi

系统使用 aspose.cell , 使得ashx第一次访问会变很慢

  网站放在IIS后, 在网站第一次访问后.  回收应用程序池 第一次访问aspx页面还是比较快.   但第一次访问ashx会很慢.   后发现原因: aspose.cell的5.3...版本. 的原因.   解决方法: 下载个7.33版本

如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题

原文:如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题 1.问题描述 假如有一个文章的业务(Article),我们在 Controllers文件夹中创建MVC Controller和Api Controller,各个Controller中都有相同的获取文章内容的Action(Content).路由为默认设置 MVC的路由为 {controller}/{action}/{id} Api的路由为 api/{controller}/{action}/{id} 然而我