Asp.net mvc 4 无法加载文件或程序集';System.Web.Http.WebHost,版本=4.0.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35';

Asp.net mvc 4 无法加载文件或程序集';System.Web.Http.WebHost,版本=4.0.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35';,asp.net-mvc-4,Asp.net Mvc 4,在Visual Studio 2012中,我创建了一个ASP.NET MVC 4项目,其中目标框架是.NET framework 4.5。将项目部署到web服务器时,出现以下错误: Could not load file or assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. T

在Visual Studio 2012中,我创建了一个ASP.NET MVC 4项目,其中目标框架是.NET framework 4.5。将项目部署到web服务器时,出现以下错误:

    Could not load file or assembly 'System.Web.Http.WebHost, Version=4.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.Http.WebHost, Version=4.0.0.0, Culture=neutral,
 PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
 The system cannot find the file specified.

Source Error: 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34237

检查已部署项目的bin文件夹。它应该包含System.Web.Http.WebHost.dll。
如果此dll在此文件夹中,请检查其版本。如果不是4.0.0.0,则应部署版本4.0.0.0或更改web配置以使用其他版本(由于依赖关系,这不是一个好主意)

尝试重新安装Microsoft.AspNet.WebApi包。打开包管理器控制台并键入:

Update-Package Microsoft.AspNet.WebApi -reinstall

小心,此命令将删除所有依赖项,您必须手动安装它们。

我今天在部署过程中遇到了同样的问题。我可以通过标记要复制到部署文件的程序集来修复它

为此,在我的Visual Studio项目中,在引用中选择
System.Web.Http.Webhost
程序集,并将“Copy Local”属性更改为True。我不得不对其他几个缺失的组件重复这一点


多亏了这个网站的提示-

我今天在建立了一个新的团队城市建设代理后遇到了这个问题。新代理没有安装MVC4,这可能是问题的一部分。幸运的是,我找到了答案。在TeamCity中,我刚刚更新了Nuget恢复的构建步骤,以便它不使用本地缓存


这是因为缓存可能是由已经安装了不同(MVC)框架的构建运行程序建立的。

我在一个旧项目中遇到了这个错误,我要回去做一些工作。原来这个项目实际上没有使用WebApi,所以我用NuGet卸载了Microsoft.AspNet.WebApi。这为我解决了问题


如果我真的需要WebApi,我肯定再次安装它也会修复错误。

我知道这已经得到了回答,但我想我应该添加一些东西


每次我对导致错误的文件将“copy local”设置为true时,我都会发布它,然后再获取一个。所以我选择了引用下的所有文件,并将它们全部设置为true。这为我解决了问题。

重要提示:此错误消息可能是因为您正在将4.5项目部署到未安装4.0的服务器上。确保已在IIS中为所需的项目安装了.NET Framework版本。默认情况下,其中一些DLL不会复制,因为它通常使用核心项目DLL。检查以确保您的生产服务器具有您要使用的.NET版本。我在4.0服务器上的4.5项目中亲身经历了这一点。

确保服务器上安装了ASP.NET MVC 4。在以下位置进行检查-


C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET MVC 4

是否使用web deploy或如何部署它?@John i发布并将该文件复制到主机您是否可以直接发布到服务器?或者使用WebDeployZip之类的工具?这将确保包含所有文件。还要确保服务器上已经安装了MVC。我告诉过你几种尝试的方法。您尝试了哪一个?@IAfanasov我遇到了相同的问题,我确认部署项目的bin文件夹中有System.Web.Http.WebHost.dll文件,但仍然出现了相同的错误。你是怎么想的?我还错过了什么吗?谢谢你检查了dll的版本和项目参考的版本了吗?我在哪里可以找到System.Web.Http.WebHost.dll?我没有这个文件System.Web.Http.WebHost.dll我怎么能有这个?编辑packages.config并注释掉所有的webapi参考,然后您可以运行安装,而不必先卸载。@s这本书对我很有帮助。