5

我在一家新公司开始工作,我从事的主要项目(一个 ASP.NET 3.5 Web 应用程序项目)初始加载需要很长时间(大约 1.5 分钟)

我知道这通常是网络应用程序项目的本质,但我的问题是这似乎太长了。

我已经尝试了几件事来尝试找出可能导致这种滞后的原因,包括用从新项目创建的新的 web.config 替换 web.config 从我的 web.config 中的 app_start 中清除所有内容从我的 bin 文件夹中删除了所有 weppart dll(留下我的 bin 目录中有 19 个 dll,其中 6 个来自 MS 企业库)

并且仍然需要很长时间才能加载。

我想知道是否有人对我如何找出导致如此巨大的加载时间的原因或任何可以帮助我了解我的应用程序在启动时正在做什么的工具有任何指示

谢谢-克里斯

4

5 回答 5

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 的配置部分下添加以下设置。

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

当然,如果您添加此设置,已签名的 DLL 将不再验证其有效性!

于 2009-12-30T07:25:49.943 回答
2

尝试一个热身脚本

JetBrains DotTrace是一款出色的 ASP.NET 分析器。

于 2009-05-14T00:08:20.670 回答
0

RedGate 的 ANTS 分析器可以为您提供一些提示,说明什么可能会减慢您的速度。

在 Default.aspx.cs 中的 Page_Load 上设置断点并开始。

检查 Global.asax 文件以查看是否正在加载您不知道的任何内容。

其他项目加载速度快吗?您是否有其他正在运行的程序可能会降低您的机器速度?正如你所提到的,.NET 应用程序在初始加载时花费的时间最长......你有很多引用吗(外部库、dll ......等等......)

如果您发布到登台或开发服务器,它会快速加载吗?

于 2010-12-15T02:01:18.067 回答
0

有多少项目?如果您在 bin 目录中有大量程序集和 dll,则可能会大大减慢加载时间(即使它们非常小)。这是我能建议的最好的。

于 2009-05-14T00:08:51.870 回答
0

尝试使用 SQL Profiler 并在启动期间观察相关的数据库活动。

很有可能,在第一个页面视图上会有大量查询访问数据库以初始化各种缓存。

如果是这种情况,您可以将精力集中在优化导致最多阻塞的查询上。

于 2009-05-14T06:18:41.750 回答