Error with WebApi 2.0 RouteAttribute

Here 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 is my web api controller

  [RoutePrefix("api/admin/users/")] public class UsersController : ApiController { [Route("get")] public IQueryable<User> GetUsers() { return db.Users; } } 

And here is the error I get when navigating localhost: 123 / api / admin / users / get

The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application startup code after all other initialization code.

I have no idea what I'm doing wrong here. I believe that I am doing everything right for the new WebApi 2.0, 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) 
+6
source share
2 answers

Remove

  GlobalConfiguration.Configure(x => x.MapHttpAttributeRoutes()); 

from Global.asax .

And then call MapHttpAttributeRoutes in WebApiConfig.cs

  public static void Register(HttpConfiguration config) { config.MapHttpAttributeRoutes(); } 
+6
source

In my case, I was getting this error because I configured Autofac before WebApi:

 GlobalConfiguration.Configure(WebApiConfig.Register); GlobalConfiguration.Configure(AutofacConfig.Register); 

Reordering made me pass this problem:

 GlobalConfiguration.Configure(AutofacConfig.Register); GlobalConfiguration.Configure(WebApiConfig.Register); 
+3
source

Source: https://habr.com/ru/post/973190/


All Articles