Here's my 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();
}
Here's my Web Api controller
[RoutePrefix("api/admin/users/")]
public class UsersController : ApiController
{
[Route("get")]
public IQueryable<User> GetUsers()
{
return db.Users;
}
}
And here's the error I get when I navigate to localhost:123/api/admin/users/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.
I have no idea what I'm doing wrong here. I believe that I'm doing everything properly for the new WebApi 2.0 way, but I'm missing something.
Thanks in advance.
Update
Here's the stack in-case it helps
at System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request)
at System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext)
Please remove
GlobalConfiguration.Configure(x => x.MapHttpAttributeRoutes());
from Global.asax .
And then call MapHttpAttributeRoutes
in the WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
}
In my case, I was getting this error because I was configuring Autofac before WebApi:
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configure(AutofacConfig.Register);
Changing the order got me past that issue:
GlobalConfiguration.Configure(AutofacConfig.Register);
GlobalConfiguration.Configure(WebApiConfig.Register);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.