【问题标题】:DebugDiag and MVC4 gives no usable stacktraceDebugDiag 和 MVC4 没有提供可用的堆栈跟踪
【发布时间】:2013-07-02 17:57:52
【问题描述】:

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

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

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

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

本地设置

我创建了一个本地 MVC4 站点,使用 .Net 4,在 本地 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 分析报告”中。有一个堆栈跟踪的屏幕截图,顶行包含“FastApp._default.Page_Load(System.Object, System.EventArgs)。

教程截图:

我的截图:

我的代码模拟最大 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

【问题讨论】:

标签: asp.net-mvc debugdiag


【解决方案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获取工具

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 2021-01-03
    相关资源
    最近更新 更多