在装有 ASP.NET MVC 3 的机器上安装 ASP.NET MVC 4 Beta 后出现以下异常。
System.InvalidCastException 未被用户代码处理 Message=[A]System.Web.WebPages.Razor.Configuration.HostSection 无法转换为 [B]System.Web.WebPages.Razor.Configuration.HostSection。类型 A 源自位置 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'。类型 B 源自 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 在位置 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_2.0.0。0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'。源=System.Web.WebPages.Razor
堆栈跟踪:
在 System.Web.WebPages.Razor.WebRazorHostFactory.GetRazorSection(String virtualPath) 在 System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(String virtualPath, String physicalPath) 在 System.Web.WebPages.Razor.RazorBuildProvider.GetHostFromConfig() 在System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() 中 System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() 中 System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode() 中的 System.Web.WebPages.Razor.RazorBuildProvider.CreateHost()。 GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) 在 System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() 在 System.Web.Compilation.BuildProvidersCompiler.PerformBuild() 在 System.Web.Compilation.BuildManager。System.Web.Compilation.BuildManager.GetVPathBuildResultInternal 处的 CompileWebFile(VirtualPath virtualPath)(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath ,布尔 noBuild,布尔allowCrossApp,布尔allowBuildInPrecompile,布尔throwIfNotFound,布尔ensureIsUpToDate)在System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext上下文,布尔allowCrossApp,布尔throwIfNotFound)在System.Web.Mvc.BuildManagerWrapper.System。 System.Web.Mvc.BuildManagerViewEngine 中的 Web.Mvc.IBuildManager.FileExists(String virtualPath)。System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName(ControllerContext controllerContext, List`1 locations, String name, String controllerName, String areaName, String cacheKey, String[]& searchedLocations) 在 System.Web 的 FileExists(ControllerContext controllerContext, String virtualPath)。 System.Web.Mvc.VirtualPathProviderViewEngine.FindView 处的 Mvc.VirtualPathProviderViewEngine.GetPath(ControllerContext controllerContext, String[] locations, String[] areaLocations, String locationsPropertyName, String name, String controllerName, String cacheKeyPrefix, Boolean useCache, String[]& searchedLocations) (ControllerContext controllerContext, String viewName, String masterName, Boolean useCache) 在 System.Web.Mvc.ViewEngineCollection.<>c__DisplayClassc。b__b(IViewEngine e) at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths) at System.Web.Mvc.ViewEngineCollection.FindView(ControllerContext controllerContext, String viewName, String masterName) at System.Web.Mvc .ViewResult.FindView(ControllerContext context) 在 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) 在 System.Web.Mvc.ControllerActionInvoker.<> c__DisplayClass1c.b__19() 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) 在 System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<>c__DisplayClass1e.b__1b() 在 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) 在 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 过滤器, ActionResult actionResult)。 Mvc.Controller.ExecuteCore() 在 [project_namespace].Controllers.GlobalizationController.ExecuteCore() 在 [file_path] 在 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) 在 System.Web.Mvc.ControllerBase.System.Web。 Mvc.IController.Execute(RequestContext requestContext) 在 System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.b__5() 在 System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.b__0() 在系统。 Web.Mvc。Async.AsyncResultWrapper.<>c__DisplayClass8`1.b__7(IAsyncResult _) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() at System.Web.Mvc.MvcHandler.<>c__DisplayClasse.b__d() at System.Web.Mvc.SecurityUtil.b__0(Action f) 在 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) 在 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) 在 System.Web.Mvc.MvcHandler。 System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 在 System.Web.Mvc.MvcHandler.<>c__DisplayClasse.b__d() 在 System.Web.Mvc.SecurityUtil.b__0(Action f) 在 System.Web。 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) 的 System.Web.Mvc.MvcHandler.System.Web.HttpApplication 的 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) 的 Mvc.SecurityUtil.ProcessInApplicationTrust(Action action)。 CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔值&完成同步)Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 在 System.Web.Mvc.MvcHandler.<>c__DisplayClasse.b__d() 在 System.Web.Mvc.SecurityUtil.b__0(Action f) 在 System.Web。 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) 的 System.Web.Mvc.MvcHandler.System.Web.HttpApplication 的 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) 的 Mvc.SecurityUtil.ProcessInApplicationTrust(Action action)。 CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔值&完成同步)b__0(操作 f)在 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(操作操作)在 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)在 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest( IAsyncResult 结果)在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔和完成同步)b__0(操作 f)在 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(操作操作)在 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)在 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest( IAsyncResult 结果)在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔和完成同步)System.Web.HttpApplication.ExecuteStep 处的 HttpApplication.IExecutionStep.Execute()(IExecutionStep 步骤,Boolean& completedSynchronously)System.Web.HttpApplication.ExecuteStep 处的 HttpApplication.IExecutionStep.Execute()(IExecutionStep 步骤,Boolean& completedSynchronously)
这完全阻止了我,虽然我想保留测试版,但我可能需要完全删除它才能摆脱异常。