NullReferenceException at System.Web.Http.Routing.HttpRouteExtensions.GetDirectRouteCandidates(IHttpRoute route)

StackOverflow https://stackoverflow.com//questions/23042328

Question

I have,

var config = GlobalConfiguration.Configuration;
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
    );
app.UseWebApi(config);

public class UserController : ApiController {
    [Route("api/users")]
    public async Task<IEnumerable<Product>> Get(int pageIndex = 1)
    {
        return await myService.GetAllAsync(pageIndex, _pageSize);
    }

When I run it and navigate to api/users I am getting,

<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Object reference not set to an instance of an object.
</ExceptionMessage>
<ExceptionType>System.NullReferenceException</ExceptionType>
<StackTrace>
at System.Web.Http.Routing.HttpRouteExtensions.GetDirectRouteCandidates(IHttpRoute route) at System.Web.Http.Routing.HttpRouteDataExtensions.GetDirectRouteCandidates(IHttpRouteData routeData) at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.GetDirectRouteController(IHttpRouteData routeData) at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage request) at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()
</StackTrace>
</Error>
Was it helpful?

Solution

I need to use GlobalConfiguration.Configure method instead for web host,

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top