这是我的Global.asax
protected void Application_Start()
{
RegisterRoutes();
}
private static void RegisterRoutes()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(x => x.MapHttpAttributeRoutes());
GlobalConfiguration.Configuration.EnsureInitialized();
}这是我的Web控制器
[RoutePrefix("api/admin/users/")]
public class UsersController : ApiController
{
[Route("get")]
public IQueryable<User> GetUsers()
{
return db.Users;
}
}下面是我导航到localhost时遇到的错误:123/api/admin/user/ get
The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.
我不知道我在这里做错了什么。我相信我正在为新的WebApi 2.0方法做好一切,但我遗漏了一些东西。
提前谢谢。
更新
这是堆栈,以防万一,这是有帮助的
at System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request)
at System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext)发布于 2014-08-02 15:42:53
请移除
GlobalConfiguration.Configure(x => x.MapHttpAttributeRoutes());来自Global.asax。
然后在WebApiConfig.cs中调用MapHttpAttributeRoutes
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
}发布于 2015-11-09 16:13:44
在我的例子中,由于在WebApi之前配置Autofac,所以我得到了这个错误:
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configure(AutofacConfig.Register);改变命令让我克服了这个问题:
GlobalConfiguration.Configure(AutofacConfig.Register);
GlobalConfiguration.Configure(WebApiConfig.Register);https://stackoverflow.com/questions/25066147
复制相似问题