Asp.net mvc 无法加载文件或程序集System.Web.WebPages.Razor,版本=3.0.0.0或其依赖项之一

Asp.net mvc 无法加载文件或程序集System.Web.WebPages.Razor,版本=3.0.0.0或其依赖项之一,asp.net-mvc,wcf,inversion-of-control,unity-container,Asp.net Mvc,Wcf,Inversion Of Control,Unity Container,我在应用程序中使用MVC5、WCF和Unity框架 运行WCF服务时,出现以下错误: Server Error in '/' Application. Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot

我在应用程序中使用MVC5、WCF和Unity框架

运行WCF服务时,出现以下错误:

Server Error in '/' Application.

Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

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.IO.FileNotFoundException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.


WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Stack Trace: 


[FileNotFoundException: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
   System.Web.Mvc.PreApplicationStartCode.Start() +0

[InvalidOperationException: The pre-application start initialization method Start on type System.Web.Mvc.PreApplicationStartCode threw an exception with the following error message: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified..]
   System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) +556
   System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +132
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +102
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +153
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): The pre-application start initialization method Start on type System.Web.Mvc.PreApplicationStartCode threw an exception with the following error message: Could not load file or assembly 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified..]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9882460
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.33440
我在WCF项目中添加了System.Web.WebPages.Razor,版本=3.0.0.0,仍然存在相同的错误


有人知道如何解决此错误吗?

请确保您的项目以.net 4.5为目标,所有引用都有效,并且web AspNet.WebPages.*位于bin(Release/Debug)文件夹中

您也可以尝试在package manager控制台中使用此命令重新安装Microsoft.AspNet.WebPages nuget软件包

> Update-Package –reinstall Microsoft.AspNet.WebPages 

在我的Win10 x64系统上,我在这里遇到了确切的错误(在其他几个缺少的引用错误中)。我的问题是(我相信),是由于卸载了add/remove中的某个内容,从而删除了其他DLL

在互联网上寻找解决方案后,我终于找到了答案:

下载并安装


我也有同样的问题,WCF显示了不相关的MVC程序集的错误(我在解决方案中有多个MVC项目,它们使用System.Web.WebPages.Razor,版本=3.0.0.0)。我在WCF项目中安装了Microsoft.AspNet.WebPages软件包,运行了WCF项目,它运行正常。之后,我卸载了所有与Microsoft.AspNet.webpage相关的软件包。它工作得很好

为什么WCF项目需要这样做?Razor是一个web DLL。另外,不要将
Microsoft.web.Mvc
System.web.Mvc
混淆。我不知道为什么MvcContrib认为这是个好名字。@user2934829-你真的应该接受这个答案,因为我的项目只是Web Api,并且有同样的问题。我通过清除bin文件夹解决了这个问题:)我解决了删除
System.Web.Mvc
和works的问题!