【问题标题】:Controllers are not found in ASP.NET core in console application在控制台应用程序的 ASP.NET 核心中找不到控制器
【发布时间】:2019-02-02 22:49:44
【问题描述】:

我正在尝试获得一个简单的 asp.net 核心投影集,它​​只有一个基本配置和一个可以工作的控制器,但到目前为止无济于事。我确实使用了 web 模板项目中的代码来创建一个新的控制台项目,但没有找到控制器。

这是项目目前的样子:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseMvc();
    }
}

[ApiController]
public class TestController : ControllerBase
{
    [HttpGet]
    [Route("Test")]
    public ActionResult<string> Get()
    {
        return "Hello world!";
    }
}

//appsettings.json
{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

我在这里遗漏了一些非常明显的东西,但无法弄清楚,欢迎任何帮助。

谢谢

更新 1

更新 2

【问题讨论】:

  • 不应该是'api/test'的路由吗?
  • @MarcusHöglund 我不这么认为,我的朋友,因为我在动作级别指定路线,但我还是试了一下,以防万一我的行为。核心不同,但我得到相同的结果。谢谢:)

标签: asp.net-core asp.net-core-webapi


【解决方案1】:

@marco

只需将路由添加到您的控制器,它应该像

[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
    [HttpGet]
    [Route("Test")]
    public ActionResult<string> Get()
    {
        return "Hello world!";
    }
}

和 url 看起来像: https://localhost:5001/api/test/test

更新:

添加截图

【讨论】:

  • 现在是否必须在类级别配置路由?我问是因为这不是 web api 2 行为。我会试一试,谢谢达米尔。
  • 我试了一下,但它也不起作用。无论如何谢谢:)
  • 根据我最近添加的屏幕截图进行仔细检查,如果您这样做,它应该可以正常工作。不要忘记构建您的应用程序。您可以使用下一个 cli 命令 - dotnet build + dotnet run
  • 原来是其中一个依赖项有问题,无论如何还是非常感谢伙计。
  • 顺便说一句,给控制器添加[Route]属性对于api应用来说是一个很好的做法,而且aspnet.core模板在创建Asp.net Core Web API项目时默认添加了这个属性跨度>
【解决方案2】:

我没有注意,但我在其中一个依赖项中收到警告,再次添加它们后,我的原始代码可以正常工作,谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多