2013-08-14 2 views
5

나는 VS 2013을 실행 중이고 방금 ASP.NET Route Debugger을 설치했습니다. 내가 로컬 호스트를 검색하여 실행하려고 할 때 : XXX/RD 나는 다음과 같은 오류 얻을 : 내가 솔루션이 here을 언급하지만 작동하지 않았다 시도ASP.NET 루트 디버거를 설치 한 후 예외

[InvalidCastException: [A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. Type B originates from 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Users\joshua\AppData\Local\Temp\Temporary ASP.NET Files\root\84448590\ee78b185\assembly\dl3\776eeced\61921913_e997ce01\System.Web.WebPages.Razor.dll'.] 
    System.Web.WebPages.Razor.WebRazorHostFactory.GetRazorSection(String virtualPath) +151 
    System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(String virtualPath, String physicalPath) +209 
    System.Web.WebPages.Razor.WebRazorHostFactory.CreateHostFromConfig(String virtualPath) +46 
    System.Web.WebPages.Razor.RazorBuildProvider.GetHostFromConfig() +58 
    System.Web.WebPages.Razor.RazorBuildProvider.CreateHost() +62 
    System.Web.WebPages.Razor.RazorBuildProvider.get_Host() +65 
    System.Web.WebPages.Razor.RazorBuildProvider.EnsureGeneratedCode() +83 
    System.Web.WebPages.Razor.RazorBuildProvider.get_CodeCompilerType() +54 
    System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) +59 
    System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() +209 
    System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +15 
    System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +9949713 
    System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +299 
    System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +103 
    System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) +165 
    System.Web.Compilation.BuildManager.GetCompiledType(VirtualPath virtualPath) +10 
    System.Web.Compilation.BuildManager.GetCompiledType(String virtualPath) +28 
    System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.GetCompiledType(String virtualPath) +47 
    System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +175 
    System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +480 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +50 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +123 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +582 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +115 
    System.Web.Mvc.Async.<>c__DisplayClass28.<BeginInvokeAction>b__19() +321 
    System.Web.Mvc.Async.<>c__DisplayClass1e.<BeginInvokeAction>b__1b(IAsyncResult asyncResult) +184 
    System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +53 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +140 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +63 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +50 
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +45 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +81 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +146 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +66 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +50 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +50 
    System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +50 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +73 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +146 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +66 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +50 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +50 
    System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +50 
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(IAsyncResult asyncResult, ProcessRequestState innerState) +45 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +81 
    System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +146 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +66 
    System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +50 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +50 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +49 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9631512 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 

:

[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. Type B originates from 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Users\joshua\AppData\Local\Temp\Temporary ASP.NET Files\root\84448590\ee78b185\assembly\dl3\776eeced\61921913_e997ce01\System.Web.WebPages.Razor.dll'. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidCastException: [A]System. 
Web.WebPages.Razor.Configuration.HostSection cannot be cast 
to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. Type B originates from 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Users\joshua\AppData\Local\Temp\Temporary ASP.NET 
Files\root\84448590\ee78b185\assembly\dl3\776eeced\61921913_e997ce01\System.Web.WebPages.Razor.dll'. 

스택 추적을. 나는 그것을 버전 2와 3으로 만들려고 노력했다.

+1

예외 메시지를 기반으로 한 직감입니다. 분명히 코드의 한 부분은'System.Web.WebPages.Razor' v2.0.0.0을 참조하는 반면 코드의 다른 부분은'System.Web.WebPages.Razor' v3.0.0.0을 참조하고있는 것으로 보입니다. ASP.NET 루트 디버거가 이전 버전의 .dll에 종속되어 있지만 프로젝트가 최신 버전을 사용하고 있습니까? 링크 된 게시물은 이전 버전을 사용하도록 프로젝트를 강제하는 한 가지 방법처럼 보입니다. 구성에 v2.0.0.0을 넣었을 때의 오류 메시지를 게시해야합니다. bin에서 v3.0.0.0 .dll을 삭제하는 것을 잊었을 수 있습니까? – rliu

답변

5

roliu는 올바른 방향으로 나를 가리켰다. 그리고 나는 그것을 이해했다. 경로 디버거에는 mvc의 system.web.webpages.razor 및 v4.0.0.0 버전의 v2.0.0.0 버전을 참조하는 web.config 파일이 있습니다. 나는 면도날 v2의 모든 레퍼레이션을 면도날 v3으로 변경하고 mvc 4를 mvc 5로 변경합니다.

+4

Fyi,이 Web.config 파일은 Areas/RouteDebugger/Views 내에 있습니다. –

+0

대단히 감사합니다! – Eyal