解决ASP.NET站点首次访问慢的方法

2019 年 7 月 11 日 DotNet

(给DotNet加星标,提升.Net技能


转自:lingfeng95
cnblogs.com/zhao123/p/11163454.html

问题现象


访问ASP.NET Web项目的时候,第一次访问比较慢,当闲置一段时间后,再次访问还是会非常慢。


问题原因


这是IIS回收造成的,再次访问的时候会初始化操作,初始化需要耗费时间,所以访问会比较慢,第二次访问的时候不需要初始化操作,因此变快了。


解决办法


IIS应用初始化会在网站第一次创建后或者对应网站的应用程序池回收后,自动开启新程序池,并启动网站初始化,模拟一次正常请求,使网站一直处于在线状态。


修改IIS中的配置


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



2、修改闲置超时1740分钟:长时间没有请求释放资源,可以不用修改。



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



我看有些博客会将进程模型/闲置超时设置为0或者很长,觉得不太好。闲置超时是指如果你的应用程序未处理请求也未接受请求,则进入闲置状态,这个状态可以保持的时间,超过这个时间,则该进程将会从内存中删除并释放所有内容。


如果设置为0,则不会闲置一直持续不好,如果代码中有内存泄漏,则会一直持续,完全占用服务器。设置时间过长,长时间没有请求,还占用这内存,有点浪费。


按照以上修改之后,基本上都会秒启动。这样的修改同样也适用于MVC,web api等IIS项目


IIS8以前的项目的第一次访问ASP.NET应用会很慢


以前的程序有可能有这个问题,现在的基本上没有了,因为从Windows 8开始,不再要求必须对CSP进行签名。


Microsoft Authenticode:Microsoft Authenticode旨在帮助用户确保谁实际创建了他们正在运行的代码,特别是对于在Internet上下载或运行的代码,并验证代码在发布后未被更改或篡改。例如,经过数字签名,恶意篡改然后在线重新分发的程序将在运行之前向用户显示警告。


问题现象


ASP.NET页面第一次访问的时候很慢,时间可以持续几十秒到几分钟


问题原因


当程序里面需要调用到一些Authenticode Signed的.NET Assembly的时候,它需要连接到外网来验证数字证书。当服务器是无法连接到外网时,这个校验证书的过程需要等到timeout之后才会结束。


解决办法


这个解决方案是由微软APAC技术支持中心 Internet Developer Support Team提供 https://blogs.msdn.microsoft.com/asiatech_zh-cn/2011/04/24/asp-net/)

请同时在以下两个aspnet.config文件中加入以下内容。


C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet.config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet.config


<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>


修改以下注册表键值并重起IIS服务,打开注册表regedit,找到以下地址,修改State为00023e00,原先的是00023c00


[HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing]
"State"=dword:00023e00


然后记得重启一下应用程序池


推荐阅读

(点击标题可跳转阅读)

站点部署IIS配置优化指南

IIS+ASP.NET MVC必须知道的事

.NET理论基础+实战控制台程序实现AutoFac注入


看完本文有收获?请转发分享给更多人

关注「DotNet」加星标,提升.Net技能 

好文章,我在看❤️

登录查看更多
0

相关内容

ASP.NET 是一项微软的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面),运行于 IIS 之中的程序 。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
这一次,彻底解决滚动穿透
IMWeb前端社区
35+阅读 · 2019年1月4日
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题
AdarGCN: Adaptive Aggregation GCN for Few-Shot Learning
Exploring Visual Relationship for Image Captioning
Arxiv
14+阅读 · 2018年9月19日
Arxiv
6+阅读 · 2018年2月7日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
这一次,彻底解决滚动穿透
IMWeb前端社区
35+阅读 · 2019年1月4日
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题
Top
微信扫码咨询专知VIP会员