我刚刚在我们的生产服务器上遇到了一个高 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
在“图 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();
}
}
可能重复:
最佳答案
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 获得该工具
关于asp.net-mvc - DebugDiag 和 MVC4 没有提供可用的堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432560/