我已经开始在一家新公司工作,我工作的主要项目(ASP.NET3.5Web应用程序项目)需要很长的时间来初始加载(大约1.5分钟)
我知道这通常是Web应用程序项目的本质,但我的问题是这似乎太长了。
我尝试了几种方法来确定可能导致这种延迟的原因,包括将web.config替换为从新项目创建的新项目,清除了web.config中我的app_start中的所有内容,删除了bin文件夹中的所有webpart dll(这使得我的bin目录中有19个dll,其中6个来自MS企业库)
但它仍然需要很长时间才能加载。
我想知道是否有人有任何关于我如何找出导致如此巨大的加载时间或任何工具的指针,这些工具可以帮助我看到我的应用程序启动时正在做什么。
5条答案
按热度按时间ghhaqwfi1#
在.NET 2.0及以后版本中还有一个问题。如果bin文件夹中有任何已签名的程序集,则会尝试连接到VeriSign URL并获取证书的吊销列表,以查看它们是否有效。
这也可能会消耗你的一些启动时间。如果你认为这可能会导致你的问题,那么你可以看看下面的MS文章:
https://digital.ni.com/public.nsf/allkb/18E25101F0839C6286256F960061B282
https://support.microsoft.com/kb/936707的
要在每个应用程序的基础上处理这个问题,您可以在app.config/web. config中的config部分添加以下设置。
字符串
当然,如果您添加此设置,则签名的DLL将不再验证其有效性!
svmlkihl2#
试试warm-up script。
JetBrains DotTrace是一个优秀的ASP.NET分析器。
wfypjpf43#
有多少个项目?如果你在bin目录中有大量的程序集和dll文件,那会大大降低加载速度(即使它们很小)。
gmxoilav4#
尝试使用SQL Profiler并在启动期间观察相关的 * 数据库活动 *。
很有可能,在第一个页面视图上有大量查询命中数据库,以初始化各种缓存。
如果是这种情况,您可以将精力集中在优化导致最大阻塞的查询上。
r7xajy2e5#
红门的蚂蚁分析器可以给予你一些提示,什么可能会减慢你的速度。
在Default.aspx.cs中的Page_Load上设置一个断点并开始执行。
检查Global.asax文件,看看是否加载了您不知道的内容。
其他项目加载快吗?你有其他程序运行,这可能会减慢你的机器?正如你提到的,.NET应用程序在初始加载时花费的时间最长...你有很多引用(外部库,dll的...等...)
如果您将其添加到staging或dev服务器,它会快速加载吗?