移至 Web API RC,获取:找不到方法:'System.Web.Http.Services.DependencyResolver System.Web.Http.HttpConfiguration.get_ServiceResolver()'

2024-02-22

我将网站从 WebAPI Beta 移至 WebAPI RC,现在加载网站时出现错误:Method not found: 'System.Web.Http.Services.DependencyResolver System.Web.Http.HttpConfiguration.get_ServiceResolver()'.

我第一次尝试注册时发生错误AutoFacWebApiDependencyResolver(按照说明here http://alexmg.com/?tag=/autofac):

var resolver = new AutofacWebApiDependencyResolver(IoCManager.Container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;

堆栈跟踪显示以下内容:

[MissingMethodException: Method not found: 'System.Web.Http.Services.DependencyResolver System.Web.Http.HttpConfiguration.get_ServiceResolver()'.]
   System.Web.Http.GlobalConfiguration.<.cctor>b__0() +0
   System.Lazy`1.CreateValue() +12775823
   System.Lazy`1.LazyInitValue() +355
   StatusBoard.Web.MvcApplication.RegisterDependencyInjection() in C:\path-tp-app\Global.asax.cs:125
   StatusBoard.Web.MvcApplication.Application_Start() in C:\path-to-app\Global.asax.cs:75

基于此,该错误似乎是在静态 GlobalConfiguration 类的初始化期间发生的。当我深入研究该类的源代码时,我看到以下内容:

private static Lazy<HttpConfiguration> _configuration = new Lazy<HttpConfiguration>((Func<HttpConfiguration>) (() =>
{
  local_0 = new HttpConfiguration((HttpRouteCollection) new HostedHttpRouteCollection(RouteTable.Routes));
  local_0.get_ServiceResolver().SetService(typeof (IBuildManager), (object) new WebHostBuildManager());
  return local_0;
}));
private static Lazy<HttpControllerDispatcher> _dispatcher = new Lazy<HttpControllerDispatcher>((Func<HttpControllerDispatcher>) (() => new HttpControllerDispatcher(GlobalConfiguration._configuration.Value)));

public static HttpConfiguration Configuration
{
  get
  {
    return GlobalConfiguration._configuration.Value;
  }
}

这里的第四行似乎是问题 - 它试图调用不再存在于中的 get_ServiceResolver() 方法HttpConfiguration类(应该是DependncyResolver相反,可能)。

这只是 WebAPI 的 RC 的一个错误吗?有什么办法可以解决这个问题吗?或者我是否陷入了某个 DLL/Nuget 地狱(如果是这样,我该如何摆脱自己)?


请务必包含正确的 nuget 包(RC!)并在构建包的计算机上安装新的 mvc4rc。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移至 Web API RC,获取:找不到方法:'System.Web.Http.Services.DependencyResolver System.Web.Http.HttpConfiguration.get_ServiceResolver()' 的相关文章

随机推荐