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);