【问题标题】:Visual Studio 2008 Performance Profiler Problems with ASP.NETASP.NET 的 Visual Studio 2008 性能探查器问题
【发布时间】:2009-11-06 00:46:44
【问题描述】:

我一直在尝试让 VS.NET 2008 分析 ASP.NET MVC 应用程序,但失败了。当我尝试启动分析会话时,我从 VS.NET 收到一个通用服务器 500 错误:

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

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

一个全新的 ASP.NET MVC 应用程序(即 File | New | Project )将毫无问题地进行分析,所以我知道我的机器能够分析这样的应用程序。

那么,我的问题是,还有哪些其他常见和不常见的事情可以阻止 VS.NET 在 ASP.NET 应用程序上启动分析会话?

【问题讨论】:

  • 对我来说,答案是“停止尝试使用 VS.NET 分析器并改用 Red-Gate 的 ANTS 分析器”。当我换成 ANTS 后,我立即变得高效。

标签: asp.net asp.net-mvc visual-studio-2008 profiling


【解决方案1】:

如果您无法让 VS.Net 分析工作,那么有几个 3rd 方工具可能会有所帮助。显然,您需要为此付费。

ANTS 在这里有一个免费的演示:http://www.red-gate.com/products/ants_memory_profiler/index_v2.htm

JetBrains 还有一个提供分析的跟踪工具(我没用过,但我喜欢他们的 Resharper 工具,所以我怀疑这会很好):http://www.jetbrains.com/profiler/index.html

【讨论】:

  • ANTS 第一次工作,已经给了我一些很好的结果。谢谢死牛。
【解决方案2】:

在与分析器角力之间,您可以通过this method 从时间的角度轻松了解您的程序正在做什么。它所揭示的通常是一个惊喜。

补充:我做了相当多的调整,我对这些事情有不同的看法,例如:挂钟时间很重要,个别指令比函数/方法更重要,调用树和图表更重要有趣,但没有人知道它们在性能方面的真正含义,演示都是像 Mandelbrot 一样的高跷玩具,个别样品是钱的所在,而不是总结。

例如,调整 .NET 应用程序需要很长时间才能启动。所以在那段时间里,我对它进行了几次采样并问“它在做什么,为什么?”它在资源中按 ID 查找字符串(因此字符串可以国际化)。有必要吗?如果我查看特定的字符串,它们是永远不需要国际化的字符串。没有分析器可以告诉我这一点,但样本会立即找到它。

【讨论】:

  • 不错的答案。你的假设是对的 - ANTS 指出了几种我认为不会有问题的方法。
  • @Martin:谢谢。我添加了更多解释我的意思。
【解决方案3】:

这是我在 VS2010 下为我的 ASP.NET 网站工作的方法

  1. 确保您的 web.config 是可写的

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

改为添加您网站的 URL “目标 -> 右键单击​​ -> 添加现有网站” 确保运行网站一次,以便 IIS 进程或 ASP.NET 服务器进程启动并运行

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

现在去你的网站做任何场景,然后回到你的VS并点击停止。

【讨论】:

  • 很好的答案。一个建议是,如果您像这样格式化列表,则更容易阅读回复(尤其是那些有有序列表的回复)。我会这样做以向您展示,但我无法编辑您的回复。
【解决方案4】:

不确定您是否看过这个: http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/8366799f-7bfd-4c80-a5f1-11a57ecfd966/

但它似乎报告了与您相同的问题,并且编写了 Profiler 工具的 MSFT 开发人员做出了回应:)

【讨论】:

  • 谢谢。这看起来可能有用。
【解决方案5】:

如果您使用外部 AppSettings 进行拆分配置设置,则可能会导致这样的错误。

Visual Studio 分析器似乎无法识别您通过以下方式包含 AppConfig 设置

<appSettings configSource="App_Config\AppSettings.config" />

并且它需要插入分析所需的任何 AppSettings,而不是直接插入 web.config。

在我的例子中,将 AppSettings 移回 web.config 解决了这个问题。

【讨论】:

  • 嗯。那很有意思。我没有外部 AppSettings.config,但我有很多其他外部 .config 文件。我想知道这是否相关。为有趣的建议 +1。
猜你喜欢
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多