我已经开始在一家新公司工作,我工作的主要项目(ASP.NET 3.5 Web应用程序项目)需要花费很长时间才能进行初始加载(大约1.5分钟)
我知道这通常是网络应用程序项目的本质,但我的问题似乎太长了。
我尝试了几件事来确定导致这种滞后的原因,包括 使用从新项目创建的新文件替换web.config 从我的web.config中的app_start清除了所有内容 从我的bin文件夹中删除了所有weppart dll(在我的bin目录中留下了19个dll,包括来自MS企业库的6个dll)
仍然需要很长时间才能加载。
我想知道是否有人有任何关于我如何找出导致如此巨大的加载时间或任何可以帮助我看到我的应用程序在启动时所做的工具的指示
感谢 -Kris
答案 0 :(得分:3)
.NET 2.0中还有另一个问题。如果您的bin文件夹中有任何已签名的程序集,则CLR会尝试连接到VeriSign URL并获取证书的吊销列表以查看它们是否有效。
这可能会占用你的一些启动时间。如果您认为这可能会导致您的问题,那么您可以查看以下MS文章:
http://digital.ni.com/public.nsf/allkb/18E25101F0839C6286256F960061B282
http://support.microsoft.com/kb/936707
要在每个应用程序的基础上处理此问题,您可以在app.config / web.config的config部分下添加以下设置。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<generatePublisherEvidence enabled="false" />
</runtime>
</configuration>
当然,如果你添加这个设置,签名的DLL将不再被验证其有效性了!
答案 1 :(得分:2)
JetBrains DotTrace是一个出色的ASP.NET分析器。
答案 2 :(得分:0)
有多少个项目?如果bin目录中有大量的程序集和dll,那么可以大大减慢加载时间(即使它们非常小)。这是我能提出的最佳建议。
答案 3 :(得分:0)
尝试使用SQL事件探查器并在启动期间观察关联的数据库活动。
很可能,在第一页视图上有大量查询命中数据库以初始化各种缓存。
如果是这种情况,您可以集中精力优化导致阻塞最多的查询。
答案 4 :(得分:0)
RedGate的ANTS分析器可以给你一些关于可能减慢你速度的提示。
在Default.aspx.cs中的Page_Load上设置断点并开始运行。
检查Global.asax文件以查看是否正在加载您不知道的任何内容。
其他项目是否快速加载?你有其他运行的程序可能会降低你的机器速度吗?正如你所提到的,.NET应用程序在初始加载时花费的时间最长......你有很多引用(在库之外,dll的......等等)
如果您公开参与登台或开发服务器,它是否会快速加载?