ASP.Net MVC跟踪显示了75秒,我无法解释。

3
我注意到我们公司网站上一个用户帐户页面的渲染时间很长。我在本地打开追踪功能,并从我的开发机器访问了他的帐户,发现有75秒的渲染时间我无法找到原因。我在主aspx文件和子aspx文件中都添加了跟踪功能,但即使在子页最后的代码(一个foreach)被调用之后,仍然有75秒的操作。追踪结果显示,半秒是可以理解的(清除一些东西,我不知道是什么),但75秒毫无意义。
跟踪结果如下: Trace Results

1
可能与数据库连接有关,您是否检查过它是否在等待锁定?在此事务中是否有任何数据库活动?如果有,请运行SQL分析器并查看所有连接以及在此Web请求过程中正在运行的内容。 - Ricky Gummadi
2个回答

2

我认为你的视图中有一些代码需要占用时间,但是这76秒可能是由于ASP.NET MVC本身的渲染所花费的。

当您使用一些Html助手(通常是操作链接)使用路由,并且在路由表中有大量条目时,就可能会发生这种情况。尝试删除大多数辅助程序以呈现页面,以检查是否是这种情况。


它并没有解决整个问题,但大约只有5秒钟(或可能只是误差范围)。我发现IQueryable导致底部的foreach在实际完成之前就已经“完成”,当我清理了查询并将其从Linq2Sql移动到实际的SQL时,最后一点就被清除了。 - Jeremy Boyd

0

请确保您已关闭每个实例化的对象,该对象具有IDisposable接口。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接