Asp.net mvc 3 Visual Studio 2012 RC在迁移的项目中尝试使用带有调用信息的IntelliTrace时引发异常
上周在TechEd学习IntelliTrace后,我今天早上安装了Visual Studio 2012 Ultimate RC。我们目前使用VS2010 Professional,因此使用2012 RC是我测试IntelliTrace的唯一简单选择 我打开了VS 2012 Ultimate RC,并打开了一个在VS 2010中编写的MVC 3项目。如果将IntelliTrace设置为“仅IntelliTrace事件”,则IntelliTrace运行良好。但是,如果将其设置为“IntelliTrace事件和调用信息”,则启动调试器时会出现异常:Asp.net mvc 3 Visual Studio 2012 RC在迁移的项目中尝试使用带有调用信息的IntelliTrace时引发异常,asp.net-mvc-3,visual-studio-2012,intellitrace,Asp.net Mvc 3,Visual Studio 2012,Intellitrace,上周在TechEd学习IntelliTrace后,我今天早上安装了Visual Studio 2012 Ultimate RC。我们目前使用VS2010 Professional,因此使用2012 RC是我测试IntelliTrace的唯一简单选择 我打开了VS 2012 Ultimate RC,并打开了一个在VS 2010中编写的MVC 3项目。如果将IntelliTrace设置为“仅IntelliTrace事件”,则IntelliTrace运行良好。但是,如果将其设置为“IntelliTra
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的函数项中的某个位置。我不知道这是什么
我玩了一些游戏,发现:
- 如果我打开在VS2010中创建的web表单项目,则不会出现此问题
- 如果我在VS 2012 RC中创建一个新的MVC 3项目,问题就不会出现
- 这个问题只有在我打开一个在VS2010中创建的MVC3项目时才会出现
除了在VS 2012 RC中创建一个新项目并复制所有代码之外,如何尝试解决这个问题,我很困惑,我不希望对我们所有的项目都这样做。这可能是VS 2012 RC中的一个bug,我不知道。我还将注意到,我还收到了一个错误,显示为“找不到或打开PDB文件”,它与IntelliTrace输出中的最后一个事件一起出现,但不确定它是否已连接。任何帮助都会非常棒。您似乎遇到了我们最近在Intellitrace中修复的一个bug,但我不能仅通过查看调用堆栈来确定。您能否尝试一下,让我知道您是否可以在不在“Web Development Server”上调试时遇到异常
若要使用IIS服务器而不是Web开发服务器,请打开项目属性,选择“Web”选项卡,然后选择“使用本地IIS Web服务器”。在VS2010创建的项目中,默认情况下选择了Web开发服务器,但VS2012创建的项目的默认值为“IIS服务器”。Awesome,将其更改为IIS服务器修复了它。我一个人永远也想不到-谢谢!此错误将在VS2012 RTM中修复。到那时,您将能够使用Intellitrace high的Web开发服务器。