asp.net WebApi ApiVersionUnspecified ошибка возврата - PullRequest
1 голос
/ 14 марта 2019

Я пользовался WebApi уже несколько лет, но теперь, похоже, он не работает.В недавнем проекте asp.net .NET Framework я добавил WebApi в существующее решение MVC.Я использую пакет nuget Microsoft.AspNet.WebApi.Versioning 3.0.1

Ниже приведена конфигурация приложения:
Global.asax

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    GlobalConfiguration.Configure(WebApiConfig.Register);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

WebApiConfig.cs

public static void Register(HttpConfiguration config)
{
    var constraintResolver = new DefaultInlineConstraintResolver()
        {
            ConstraintMap =
            {
                ["apiVersion"] = typeof( ApiVersionRouteConstraint )
            }
        };
    config.MapHttpAttributeRoutes(constraintResolver);
    config.AddApiVersioning();


   //config.MapHttpAttributeRoutes(); //commented due to route versioning

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{version}/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}

контроллер API находится в папке /Controller/v1/MyControllerAPI.cs

MyControllerAPI.cs

namespace MyProject.Controllers
{

    [AllowAnonymous]
    [ApiVersion("1")]
    [RoutePrefix("api/v{version:apiVersion}/MyControllerAPI")]
    public class MyControllerAPI : ApiController
    {

        private ApplicationDbContext db = new ApplicationDbContext();


        [HttpGet]
        [Route("GetMonthly")]
        public IQueryable<Monthly> GetMonthly()
        {
            return db.Monthly;
        }
    }
}

с помощью Postman, вызывающего API GET: https://localhost:44377/api/v1/MyControllerAPI/GetMonthly

, он возвращает эту ошибку:

{
    "Error": {
        "Code": "ApiVersionUnspecified",
        "Message": "An API version is required, but was not specified."
    }
}

Что не так в моей конфигурации?Я уверен, что раньше использовал подобную конфигурацию, и она сработала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...