Asp.net编写的网站发布到IIS之后,第一次访问会特别慢。而访问了第一个页面之后,再访问其他页面就快乐

通常表现为访问首页慢,然后访问内页就快了。然后每隔个几十分钟或1个小时之后再访问,又慢了。


设置网站对应的应用程序池的"闲置超时"为0。如下图所示:

6356884468483729588612082.png

查了一下资料,“工作进程(w3wp.exe)会在不活动状态持续指定的一段时间后关闭。 默认的闲置超时值为20分钟。

IIS为了节约资源,默认20分钟内无人访问的话,就会关掉进程,当一个不幸运的人来访问时,就要等待工作进程初始化,就是这段初始化时间导致了第一次访问慢。

参考地址:

https://technet.microsoft.com/zh-cn/library/cc771956(WS.10).aspx


1、预编译

我的Web程序用的是Asp.net MVC4。听说预编译能够使网站响应加快,我尝试了一下,做了个Razor预编译,结果再也不能直接在Web里做写小改动了,如CSS、JS、Html等,而且还不能解决第一次访问慢的问题。

2、验证证书

在网上搜了一下,还查到一个验证证书的说法,这是.net 2.0时候的事,在新版本中已不会有这种情况。要改配置,事实证明解决的不是这个问题。


    3、最简单的方法

        你可以直接设置应用程序池的高级设置里的"启动模式"为"AlwaysRunning"