ASP.NET Core 2.2 Web API не работает ни по одному из настроенных маршрутов. Почему? - PullRequest
0 голосов
/ 08 февраля 2019

Я создал BaseController, который выглядит следующим образом

`[ApiController]
  public class MoviesPlaceBaseController : ControllerBase
  {
    protected readonly IMoviesPlaceSupervisor _moviesPlaceSupervisor;

    public MoviesPlaceBaseController(IMoviesPlaceSupervisor moviesPlaceSupervisor)    
    {
        _moviesPlaceSupervisor = moviesPlaceSupervisor;
    }`

В моем "PostController" я наследую от этого базового класса контроллера, который выглядит так:

`    [Route("[controller]")]
    [Produces("application/json")]
    public class PostController : MoviesPlaceBaseController
    {
      public PostController(IMoviesPlaceSupervisor supervisor) : base (supervisor){ }

        // GET api/post
        [HttpGet]
        [Produces(typeof(List<PostViewModel>))]
        public async Task<ActionResult<List<PostViewModel>>> Get(CancellationToken ct = default(CancellationToken))
        {
          return new ObjectResult(await _moviesPlaceSupervisor.GetAllPostsAsync(ct));
        }`

Мой launchSettings.json Iудалил https url, и теперь он выглядит следующим образом

`"MoviesPlaceAPI": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }`

my Startup.cs ConfigureServices выглядит следующим образом

` public void ConfigureServices(IServiceCollection services)
    {
      services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

      services.AddConnectionProvider(Configuration)
        .ConfigureSupervisor()
        .AddMiddleware()
        .AddCorsConfiguration()
        .ConfigureRepositories();
    }`

При запуске приложения я не могу подключиться к моему маршруту api / post.Когда я ставлю точки останова в этом действии и запускаю приложение, точка прерывания говорит, что она «не проверена».Я попытался сделать api / post и api / posts.В классе контроллера я удалил Route ["controller"] только с именем контроллера "post", но то же самое.Странно то, что я могу просто поразить значения api / values, хотя этот контроллер больше не существует в моем приложении.Я понятия не имею, что происходит, может кто-нибудь пролить свет, пожалуйста.

1 Ответ

0 голосов
/ 08 февраля 2019

Я обновил свой проект с ядра 2.1 asp.net до 2.2 Когда я выполнил чистку, то собрал.Он не полностью избавился от ранее скомпилированного кода.Мой файл launch.json по-прежнему указывал на Debug / netcoreapp.2.1 ... после изменения на 2.2 все стало работать как положено.

...