‘/’应用程序中的服务器错误。 System.Web.Http.WebHost

我正在尝试发布ASP.NET MVC 4 Internet应用程序。 发布后,我继续点击我网站的链接,找到:

‘/’应用程序中的服务器错误。

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

描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

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

来源错误:

在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。

程序集加载跟踪:以下信息有助于确定无法加载程序集“System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”的原因。

警告:assembly绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失。 要关闭此function,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。

堆栈跟踪:

[FileNotFoundException:无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 系统找不到指定的文件。] c:\ Users \ EAGUILARCO \ Documents \ Visual Studio 2012 \ Projects \ ProyectoFinal \ ProyectoFinal \ Global.asax.cs中的ProyectoFinal.MvcApplication.Application_Start():26

[HttpException(0x80004005):无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 系统找不到指定的文件。] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)+9916613 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+118 System.Web。 HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)+336 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+ 296

[HttpException(0x80004005):无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 系统找不到指定的文件。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9930508 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+ 254

到目前为止我尝试了什么:

  • 修改注册表,失败。 另外,我不确定这是否能解决我的问题。
  • 将’System.Web.Http.WebHost Copy Local’属性设置为’true’。 这也没有解决问题。

更新: System.Web.Http.WebHost的版本是4.0.20710.0

问题似乎是在bin文件夹中找到已部署的程序集。

检查bin文件夹 – 它应该包含System.Web.Http.WebHost dll。

如果此dll位于此文件夹中,请通过右键单击文件然后单击属性来检查版本。

如果它不是4.0.0.0,那么您应该部署版本4.0.0.0或尝试右键单击项目中的引用并确保“特定版本”属性设置为false。