route query mvc maphttpattributeroutes attribute c# asp.net-mvc-5 asp.net-mvc-routing asp.net-web-api2

c# - query - Error con WebApi 2.0 RouteAttribute



web api query string parameters (2)

Por favor eliminar

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

de Global.asax .

Y luego llame a MapHttpAttributeRoutes en WebApiConfig.cs

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

Aquí está mi 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(); }

Aquí está mi controlador Web Api

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

Y aquí está el error que obtengo cuando navego a 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.

No tengo idea de lo que estoy haciendo mal aquí. Creo que estoy haciendo todo correctamente para la nueva versión de WebApi 2.0, pero me falta algo.

Gracias por adelantado.

Actualizar

Aquí está la pila en caso de que ayude

at System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) at System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext)


En mi caso, estaba recibiendo este error porque estaba configurando Autofac antes de WebApi:

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

Cambiar el orden me ayudó a superar ese problema:

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