真正解决ASP.NET每一个页面首次访问超级慢的问题

原文:http://www.afuhao.com/article_articleId-219.shtml
摘要:ASP.NET页面首次打开很慢,但别的页面如果没有访问过,去访问也会慢。你也许认为它是在编译ASPX,或者加载一些东西。不过我发现不是这样的。

用过ASP.NET的人都知道吧,页面首次打开很慢。

本来网站第一次启动就慢,但别的页面如果没有访问过,去访问也会慢。


好吧,你也许认为它是在编译ASPX,或者加载一些东西。

我也这样认为过。


不过我发现不是这样的。

1.bin目录里面你放多少它加载多少,如果放一些无效的DLL,比如在32位下面放一些纯64位的DLL,就会直接报错;

2.aspx页面解析非常快,那么转成CS也是一瞬间,编译更不用说,不应该是卡上2-5秒,1秒是可以接受的;


今天搜索了一下,原来是这样的:


.net程序第一次运行速度慢的问题原因是第一次运行需要验证数字签名。

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




那么要做的就是不让它干这些坏事,总之我从来都不觉得它会老老实实的给你服务。


禁止证书的验证过程:
1、在下面aspnet.config文件中加入下面内容: 
    32位系统:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet.config
    64位系统:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet.config

   有4.0,甚至4.5的自己多改几个地方,如果是64位的系统,可能需要以管理员身份打开编辑器,再打开这个文件,否则无法保存的。


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

对"Network Service"帐号下运行的所有程序禁止证书检查

    不会的话就忽略吧。

    导入以下注册表内容,自己先另存为*.reg文件吧,如果会手工操作的话,就手工来吧。



Windows Registry Editor Version 5.00  
  
[HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing]  
  
"State"=dword:00023e00  
然后记得重启一下应用程序池(实在不知道,就重启IIS服务),再去看看你的网站,首次加载快吗?其它页面访问快吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值