【问题标题】:Adding AspNet Core to standard Dotnet Core Console app将 AspNet Core 添加到标准 Dotnet Core 控制台应用程序
【发布时间】:2017-11-28 10:51:51
【问题描述】:

我有一个现有的 Dotnet Core 2.0 控制台应用程序,它是一个长时间运行的应用程序(直到用户退出它)。

我想为此添加一个 Rest API 并想添加 AspNet Core MVC 来执行此操作,但是当我访问 http://localhost:5006/api/values 时,我得到的只是 404@ Kestrel 正在工作并接收请求,但它不是让它到我的控制器!

我已将 NuGet 包添加到 Microsoft.AspNetCore、Microsoft.AspNetCore.Mvc。我还添加了对 Microsoft.AspNetCore.All 的引用,但这也不起作用,所以我现在删除了它,因为我不需要所有的臃肿。

我在我的应用程序中将此称为 static Main()

private static void StartWeb()
{
    var host = WebHost
              .CreateDefaultBuilder()
              .UseKestrel()
              .UseStartup<WebStartup>()
              .UseUrls("http://*:5006")
              .Build();
    host.Start();
}

这是 WebStartup 类

namespace myApp
{
    public class WebStartup
    {
        public IConfiguration Configuration { get; }
        public WebStartup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvc();

        }
    }
}

最后在 Controllers 文件夹中,我有一个名为 ValuesControler 的类

namespace myApp.Controllers
{
    [Produces("application/json")]
    [Route("api/[controller]")]
    class ValuesController : Controller
    {
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }
}

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc


    【解决方案1】:

    为了让 ASP.NET Core MVC 识别您的 Controller 类,它们必须声明为 public。在您的示例中,您没有指定 ValuesController 是一个公共类 - 相反它默认为 internal,这就是它没有被拾取并导致 404 的原因:

    public class ValuesController : Controller
    

    【讨论】:

      猜你喜欢
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多