Здравствуйте, я пытаюсь понять, почему мои запросы не входят в мой маршрут API. Кажется, они достигают сервера, но они не развертываются в MVC
.
Сервер работает: http://localhost:9300
Запрашиваемый мною маршрут: http://localhost:9300/api/getusers
Программа
public class Program {
public static void Main(string[] args) {
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
var builder = new WebHostBuilder();
builder.UseStartup<Startup>();
var url = Address.Default.ToUrl();
builder.UseKestrel().UseUrls(url);
return builder;
}
}
Запуск
public class Startup {
public Startup(IConfiguration configuration) {
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services) {
services.AddOptions();
services.AddMvc();
}
public IConfiguration Configuration;
public void Configure(IApplicationBuilder app) {
Debug.WriteLine("Entered server"); //enters successfully here
app.UseMvc(); //does not enter the controller
}
}
Контроллер
Это простой контроллер с методом GET
. Конструктор вообще не вызывается. Почему это произойдет? Я знаю, когда сервер запускается в первый раз... он проверяет состояние своих маршрутов.
[ApiController]
class UserController : ControllerBase {
private static List<User> users = new List<User> {
new User{Id=0,Age=0,Name="Failed"},
new User{Id=12,Age=33,Name="Daniel"},
new User{Id=13,Age=33,Name="Marian"},
};
public UserController() {
Debug.WriteLine("Controller called"); //does not get called !
}
[HttpGet]
[Route("api/getusers")]
public async Task<HttpResponseMessage> GetUsers() {
await Task.Delay(1000);
return new HttpResponseMessage {
Content = new StringContent(users.ToJson()),
StatusCode = HttpStatusCode.OK
};
}
}
PS Нужно ли что-нибудь добавить?Что мне не хватает, я внимательно следил за другими реализациями.