system.web.http.routing.httprouteextensions.getdirectouteCandIdates(ihttproute路由)中的nullreferenceException。

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

我有,

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

当我运行它并导航到我得到的API /用户,

<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>
.

有帮助吗?

解决方案

我需要使用globalconfiguration.configure方法而不是web主机,

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top