0

我正在尝试在服务器上部署 MVC Web API 解决方案。该服务器具有 Windows 2012 R2 操作系统。这是基于 MVC 4 的 Web API 解决方案。服务器安装了 .Net 4.0 框架。除了这台服务器机器外,该解决方案已按预期部署并正常工作。注意:那些其他机器安装了 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.0,Culture = Neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。] OSCARService.WebApiApplication.Application_Start() +0

[HttpException(0x80004005):无法加载文件或程序集“System.Web.Http.WebHost,版本=4.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +544 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +186 System.Web。 HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, 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,版本=4.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +579 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +112 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) + 716

我尝试在框架目录中找到这个文件(System.Web.Http.WebHost),但找不到这个特定的文件。

我想知道这个文件是否必须在物理上可用?

我也尝试将 System.Web.Http DLL 设置为"CopyLocal='True'"但没有用。

我已经尝试在这里寻找类似的情况/问题答案,但无法真正找到任何方向。

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

4

2 回答 2

1

我通过重新安装 NuGet 包来解决此问题,该包更正了损坏的依赖项。从包管理器中,尝试运行此命令

更新包 Microsoft.AspNet.WebApi -reinstall

于 2017-05-11T09:31:21.840 回答
0

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

希望这可以帮助

于 2017-05-11T07:08:26.743 回答