Visual Studio 2008 性能分析器在 ASP.NET 中的问题

4
我一直在尝试并失败地让VS.NET 2008对一个ASP.NET MVC应用程序进行分析。当我尝试启动分析会话时,我从VS.NET得到一个通用的500服务器错误:

网站配置不正确;获取ASP.NET进程信息失败。 请求 'http://localhost:4750/foo/VSEnterpriseHelper.axd' 返回错误:远程服务器返回错误:(500) 内部服务器错误。

我已经尝试了几件事情,包括:

全新的ASP.NET MVC应用程序(即 文件 | 新建 | 项目)可以无问题地进行分析,因此我知道我的计算机能够对这样的应用程序进行分析。

所以,我在这里的问题是,还有什么常见和不常见的事情可能会阻止VS.NET在ASP.NET应用程序上启动分析会话?


对我来说,答案是“停止尝试使用VS.NET分析器,改用Red-Gate的ANTS分析器”。当我转用ANTS时,我立即变得高效起来。 - Martin Peck
5个回答

4

ANTS 第一次就成功了,已经给我带来了一些出色的结果。感谢 deadbeef。 - Martin Peck

4
在与分析器搏斗之间,您可以通过这种方法很容易地从时间角度获得有关程序正在执行的情况的相当好的图像。它揭示的通常是一个惊喜。
补充:我做了很多调整,并且对这些事情有不同的看法,例如:挂钟时间是唯一重要的,单个指令比函数/方法更重要,调用树和图表很有趣,但没有人知道它们在性能方面真正意味着什么,演示都像Mandelbrot这样生硬的玩具,而单个样本才是最重要的,而不是总结。
例如,在调整.NET应用程序时,启动需要很长时间。因此,在此间隔期间,我会多次对其进行采样并询问“它在做什么以及为什么?”它正在资源中按ID查找字符串(以便可以国际化字符串)。这是必要的吗?如果我查看特定字符串,则是永远不需要国际化的字符串。没有分析器可以告诉我这一点,但是样本立即发现它。

不错的回答。你关于假设是正确的 - ANTS指出了几种我从未想过会有问题的方法。 - Martin Peck
@Martin:谢谢。我添加了更多关于我的意思的解释。 - Mike Dunlavey

4

以下是我在VS2010下为我的ASP.NET网站解决性能问题的方法:

  1. 确保你的web.config文件可写

  2. 创建一个新的性能会话,并不要添加任何项目

相反,添加你的网站URL,“目标 -> 右键单击 -> 添加现有网站” 确保运行一次网站以使IIS进程或ASP.NET服务器进程运行起来

  1. 右键单击性能会话并选择“附加”,然后选择你的Web服务器进程

现在去你的网站执行测试场景,完成后返回VS并点击停止。


很好的回答。一个建议是,如果您将响应(特别是那些有排序列表的响应)格式化为这样,阅读起来会更容易。我想这样做向您展示,但我无法编辑您的响应。 - davids

2

谢谢。这看起来可能会很有用。 - Martin Peck

2
如果您使用外部AppSettings进行拆分配置设置,这可能会导致出现此类错误。
Visual Studio分析器似乎无法识别您通过AppConfig设置包含的内容。
<appSettings configSource="App_Config\AppSettings.config" />

需要将任何与分析相关的AppSettings插入到那里,而不是直接插入到web.config中。

在我的情况下,将AppSettings移回到web.config中解决了这个问题。


嗯,这很有趣。我没有外部的AppSettings.config文件,但我确实有很多其他的外部.config文件。我想知道这是否有关系。对于这个有趣的建议点赞。 - Martin Peck

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