ASP.NET 2.2的核心API网站不打任何配置的路线,这是为什么?

问题描述 投票:2回答:1

我创建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我删除了HTTPS URL,它现在看起来是这样的

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

我Startup.cs ConfigureServices看起来像这样

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

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

当运行我的应用程序不能打我的API /后的路线。当我把在行动破发点并运行应用程序,断点称其“未验证”。我试图做的API /后和API /职位。在控制器类我删除路由[“控制器”]与控制器“后”的只是名字,但同样的事情。奇怪的是,我可以打API /值就好了,即使该控制器不再在我的应用程序存在。我不知道是怎么回事,有人可以提供一些线索请。

c# asp.net-web-api asp.net-core .net-core
1个回答
1
投票

我升级从asp.net 2.1核心我的项目2.2当我执行干净再建。它并没有完全摆脱以前编译代码。我launch.json文件仍指向调试/ netcoreapp.2.1 ......改变之后,以2.2开始的一切工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.