NullReferenceException at System.Web.Http.Routing.HttpRouteExtensions.GetDirectRouteCandidates(IHttpRoute route)
-
21-12-2019 - |
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>
Solution
I need to use GlobalConfiguration.Configure method instead for web host,
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow