ASP.NET第一次访问慢的解决方法(MVC,Web Api)
问题现象访问asp.net web项目的时候,第一次访问比较慢,当闲置一段时间后,再次访问还是会非常慢。 问题原因这是IIS回收造成的,再次访问的时候会初始化操作,初始化需要耗费时间,所以访问会比较慢,第二次访问的时候不需要初始化操作,因此变快了。 解决办法IIS应用初始化会在网站第一次创建后或者对应网站的应用程序池回收后,自动开启新程序池,并启动网站初始化,模拟一次正常请求,使网站一直处于在线状态。 修改IIS中的配置 2.修改闲置超时1740分钟:长时间没有请求释放资源,可以不用修改。 3.修改启用网站程序预加载(true):保证程序池在启动过后,网站能响应预加载动作。 我看有些博客会将进程模型/闲置超时设置为0或者很长,觉得不太好。闲置超时是指如果你的应用程序未处理请求也未接受请求,则进入闲置状态,这个状态可以保持的时间,超过这个时间,则该进程将会从内存中删除并释放所有内容。如果设置为0,则不会闲置一直持续不好,如果代码中有内存泄漏,则会一直持续,完全占用服务器。设置时间过长,长时间没有请求,还占用这内存,有点浪费。按照以上修改之后,基本上都会秒启动。这样的修改同样也适用于MVC,web api等IIS项目 IIS8以前的项目的第一次访问ASP.NET应用会很慢以前的程序有可能有这个问题,现在的基本上没有了,因为从Windows 8开始,不再要求必须对CSP进行签名。 问题现象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/) <?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <generatePublisherEvidence enabled="false"/> </runtime> </configuration> 修改以下注册表键值并重起IIS服务,打开注册表regedit,找到以下地址,修改State为00023e00,原先的是00023c00[HKEY_USERSS-1-5-20SoftwareMicrosoftWindowsCurrentVersionWinTrustTrust ProvidersSoftware Publishing]"State"=dword:00023e00然后记得重启一下应用程序池 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何移植到.NET核心?
- asp.net-mvc – 使用asp.net mvc操作过滤器的奇怪行为Attri
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automap
- 将搜狗细胞词库转换为其他输入法词库——深蓝词库转换1.1发
- ASP.NET客户端与服务器视图呈现
- asp.net-mvc – ASP.MVC 2.0当整数值为零时,如何显示整数的
- “自动完成关闭”无法在IE中运行 – ASP.Net
- asp.net-mvc – ASP.NET MVC异常处理
- asp.net-web-api – 在LINQPad中使用WebAPI?
- asp.net-mvc-3 – 如何使用Console.WriteLine在ASP.Net MVC