我有一个现有的Dotnet Core 2.0控制台应用程序,它是一个长时间运行的应用程序(直到用户退出)。
我想要添加一个Rest API,并希望使用AspNet Core MVC来实现这一点,但是当我访问http://localhost:5006/api/values时,我只得到一个404错误。Kestrel正在工作并接收请求,但它没有到达我的控制器!
我已经添加了Microsoft.AspNetCore、Microsoft.AspNetCore.Mvc的NuGet包。我还添加了对Microsoft.AspNetCore.All的引用,但这也不起作用,所以我现在已将其删除,因为我不需要所有的臃肿。
我在我的应用程序的静态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" };
}
}
}