Asp.net mvc 4 “面向”;无法加载文件或程序集';System.Web.Http.WebHost,版本=4.0.0.0,';或它的一个依赖项。”;

Asp.net mvc 4 “面向”;无法加载文件或程序集';System.Web.Http.WebHost,版本=4.0.0.0,';或它的一个依赖项。”;,asp.net-mvc-4,asp.net-web-api,iis-8,system.web.http,Asp.net Mvc 4,Asp.net Web Api,Iis 8,System.web.http,我正在尝试在服务器上部署MVCWebAPI解决方案。服务器具有Windows 2012 R2操作系统。这是基于MVC4的Web API解决方案。 服务器已安装.Net 4.0 framework。除此服务器外,解决方案已部署,并按预期正常工作。注意:这些其他计算机已安装Visual Studio 我在这里的问题是——无论我采用哪种方法,无论是解决方案本身还是发布解决方案,它都不起作用,并给出以下错误 无法加载文件或程序集“System.Web.Http.WebHost,Version=4.0.0

我正在尝试在服务器上部署MVCWebAPI解决方案。服务器具有Windows 2012 R2操作系统。这是基于MVC4的Web API解决方案。 服务器已安装.Net 4.0 framework。除此服务器外,解决方案已部署,并按预期正常工作。注意:这些其他计算机已安装Visual Studio

我在这里的问题是——无论我采用哪种方法,无论是解决方案本身还是发布解决方案,它都不起作用,并给出以下错误

无法加载文件或程序集“System.Web.Http.WebHost,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件

说明:执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集'System.Web.Http.WebHost,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件

堆栈跟踪显示: [FileNotFoundException:无法加载文件或程序集'System.Web.Http.WebHost,Version=4.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。] OSCARService.WebApiApplication.Application_Start()+0

[HttpException(0x80004005):无法加载文件或程序集'System.Web.Http.WebHost,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。] System.Web.HttpApplicationFactory.ensureStartCalledForIntegratedMode(HttpContext上下文,httpapplicationapp)+544 System.Web.HttpApplication.registereventsubscriptionswithis(IntPtr-appContext,HttpContext-context,MethodInfo[]handlers)+186 System.Web.HttpApplication.InitSpecial(HttpApplicationState,MethodInfo[]处理程序,IntPtr-appContext,HttpContext-context)+172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr-appContext,HttpContext-context)+402 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+343

[HttpException(0x80004005):无法加载文件或程序集'System.Web.Http.WebHost,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。] System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+579 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+112 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequestWR,HttpContext上下文)+716

我尝试在framework目录中查找此文件(System.Web.Http.WebHost),但找不到此特定文件

我想知道这个文件是否需要物理上可用

我还尝试将System.Web.httpdll设置为
“CopyLocal='True'”
,但没有成功

我已经试着在这里寻找类似的情况/问题答案,但实际上找不到任何方向


如果有人能在这里为我的问题提供指导,我将不胜感激。

检查部署项目的bin文件夹。它应该包含System.Web.Http.WebHost.dll。如果此dll在此文件夹中,请检查版本。如果不是4.0.0.0,那么应该部署版本4.0.0.0。如果您使用的是nuget软件包,请检查您的packages.config,如果安装了正确的版本,请检查您的web.config


希望这有帮助

我通过重新安装NuGet软件包修复了这个问题,该软件包纠正了已损坏的依赖关系。在包管理器中,尝试运行此命令

更新包Microsoft.AspNet.WebApi-重新安装


您正在使用Web API 2.2吗?在这种情况下,
System.Web.Http.WebHost
Microsoft.AspNet.WebApi.WebHost
nuget包的一部分。请考虑通过“代码>安装包微软、ASPNET.WebAPI、WebHOST <代码> @ AJAYARADHYA:重新安装这个包:我不确定。在我的packages.config中,这行代码是这样写的:
在花了大量时间进行研究之后,我认为应该采用手动方法。在我拥有Visual Studio的本地计算机上,我从“Packages”目录中找到了对
System.Web.Http.WebHost
DLL的引用。从那个文件夹中,我复制了.dll并粘贴到服务器的bin目录中。我确信一定有办法在VisualStudio之外/没有VisualStudio的情况下“重新安装”这样的NuGet软件包。但现在我做了这件事。如果我发现或遇到这样的工具,我会发布我的答案。我做了一些研究,并尝试在下面的链接中通过Nuget CLI(命令行界面)安装一个软件包。我参考了下面的链接以使其工作。1.2.在我尝试部署服务但未安装visual studio的服务器计算机上,您能否提供如何重新安装NuGet软件包并更正缺少的依赖项的方向?这是解决此问题的最佳方法