DebugDiag和MVC4没有可用的堆栈跟踪

时间:2013-07-02 17:57:53

标签: asp.net-mvc debugdiag

我刚刚在我们的生产服务器上遇到了高CPU问题,并决定在本地调试这种情况,以便将来做好准备,但是当我尝试调试本地MVC4站点时,我没有获得相同的信息堆栈跟踪正如教程所做的那样。

问题: 有谁知道是否有可能获得更多信息的堆栈跟踪?

我希望在某处看到HomeController.Index,但我看到的唯一方法是:

System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr,System.Web.RequestNotificationStatus ByRef)

本地设置

我使用 .Net 4 创建了一个本地 MVC4网站,在本地IIS 8.0 (非iis express)上运行以模拟服务器环境。我的本地计算机运行 Windows 8

调试工具:Debug Diagnostics 1.2

我点了这个链接:http://www.iis.net/learn/troubleshoot/performance-issues/troubleshooting-high-cpu-in-an-iis-7x-application-pool

在“图6 - DebugDiag分析报告”中。有一个stacktrace的屏幕截图,顶行包含“FastApp._default.Page_Load(System.Object,System.EventArgs)。

教程截图: enter image description here

我的屏幕截图: enter image description here

我的代码模拟最大CPU使用率:

public class HomeController : Controller
{
 public ActionResult Index(int seconds)
 {
  ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

  DateTime start = DateTime.Now;
  while (DateTime.Now.Subtract(start) < TimeSpan.FromSeconds(seconds))
  {
    "".ToString();
  }
  return View();
 }
}

可能重复:

DebugDiag not showing .NET stack information under .NET 4

1 个答案:

答案 0 :(得分:1)

Debug Diag 1.2可能无法为.net framework 4.0提供正确的堆栈跟踪。实际上,根本不是.net 4.5的正确堆栈。

您应该使用Debug Diag 2.0来分析针对框架4.0及更高版本的内存转储。您可以从http://www.microsoft.com/en-us/download/details.aspx?id=40336

获取该工具