asp.net-mvc-3 - 尝试在迁移的项目中使用带有调用信息的 IntelliTrace 时,Visual Studio 2012 RC 引发异常

标签 asp.net-mvc-3 visual-studio-2012 intellitrace

上周在 TechEd 上了解 IntelliTrace 后,今天早上我安装了 Visual Studio 2012 Ultimate RC。我们目前使用 VS 2010 Professional,因此使用 2012 RC 是我测试 IntelliTrace 的唯一简单选择。

我打开了 VS 2012 Ultimate RC,并打开了一个用 VS 2010 编写的 MVC 3 项目。如果我将其设置为“仅 IntelliTrace 事件”,则 IntelliTrace 可以正常运行。但是,如果我将其设置为“IntelliTrace 事件和调用信息”,则启动调试器时会出现异常:

System.Reflection.TargetInvocationException was unhandled
HResult=-2146232828
Message=Exception has been thrown by the target of an invocation.
Source=mscorlib
StackTrace:
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at System.Web.HttpApplication.InvokeMethodWithAssert(MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs)
   at System.Web.HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)
   at System.Web.HttpApplicationFactory.FireApplicationOnStart(HttpContext context)
   at System.Web.HttpApplicationFactory.EnsureAppStartCalled(HttpContext context)
   at System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context)
   at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
   at System.Web.HttpRuntime.ProcessRequestNow(HttpWorkerRequest wr)
   at System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
   at System.Web.HttpRuntime.ProcessRequest(HttpWorkerRequest wr)
   at Microsoft.VisualStudio.WebHost.Request.Process()
   at Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Connection conn)
   at Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Connection conn)
   at Microsoft.VisualStudio.WebHost.Server.OnSocketAccept(Object acceptedSocket)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
InnerException: System.AccessViolationException
   HResult=-2147467261
   Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   StackTrace:
   InnerException: 

问题似乎出在 Microsoft.VisualStudio.WebHost.Server.OnSocketAccept 的函数入口处。我不知道这是什么。

我玩了一些,发现:

  • 如果我打开在 VS 2010 中创建的 Web 表单项目,则不会出现此问题。
  • 如果我在 VS 2012 RC 中创建新的 MVC 3 项目,则不会出现此问题。
  • 仅当我打开在 VS 2010 中创建的 MVC 3 项目时才会出现此问题。

除了在 VS 2012 RC 中创建一个新项目并复制所有代码之外,我对如何尝试解决此问题感到困惑,我不想为我们拥有的每个项目都这样做。我不知道这可能是 VS 2012 RC 中的一个错误。我还会注意到,我还收到一条错误消息,提示“无法找到或打开 PDB 文件”,该错误与 IntelliTrace 输出中的最后一个事件一起出现,但不确定它是否已连接。任何帮助都会很棒。

最佳答案

您似乎遇到了我们最近在 Intellitrace 中修复的错误,但仅通过查看调用堆栈我无法确定。您可以尝试一下,让我知道您在“Web Development Server”上不进行调试时是否可以遇到异常吗?

要使用 IIS 服务器而不是 Web 开发服务器,请打开项目属性,选择“Web”选项卡,然后选择“使用本地 IIS Web 服务器”。 VS2010创建的项目默认选择“Web Development Server”,而VS2012创建的项目默认选择“IIS Server”。

关于asp.net-mvc-3 - 尝试在迁移的项目中使用带有调用信息的 IntelliTrace 时,Visual Studio 2012 RC 引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090331/

相关文章:

c# - 在 MVC3 应用程序中使用 C# 设置日期格式

c++ - 调试 Win32 API 应用程序是否存在内存泄漏

visual-studio-2012 - 是什么导致多进程编译在Visual Studio 2012上失败?

visual-studio-2015 - 从 Visual Studio 诊断工具中筛选出线程退出事件

visual-studio - 自动删除旧的 IntelliTrace 记录

visual-studio - 在应用程序执行期间禁用 IntelliTrace

c# - 如何在操作过滤器中记录所有查询参数?

asp.net-mvc-3 - ASP.NET MVC 3 应用程序的按抽象分支的示例,其中抽象位于不同的国家/地区

asp.net - 如何使ASP.NET服务器控件获得最短的ID?

python - 如何设置 SET VS90COMNTOOLS=%VS110COMNTOOLS%