У меня есть служба GRPC, написанная на ASP.NET Core 5.0, и я хотел добавить классический контроллер REST, чтобы изучить его внутреннее состояние на этапе разработки.
К сожалению, у меня возникают проблемы с маршрутизацией.
Это соответствующий раздел конечной точки класса Startup
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
endpoints.MapGrpcService<TestProviderService>();
endpoints.MapGet("/", async context =>
{
context.Response.Redirect("/docs/index.html");
});
});
Контроллер доступен при нажатии /values/
, но не может найти действие при попытке исследовать конкретный ресурс /values/123
или /values/1234/2345
. (В моем реальном случае идентификаторы - это идентификаторы GUID, а не целые числа, если это имеет значение).
Все работает, как ожидалось, когда я комментирую
endpoints.MapGrpcService<TestProviderService>();
Я также попытался включить HTTP 1 и HTTP 2 бок о бок, выполнив
webBuilder.UseStartup<Startup>()
.ConfigureKestrel(options => options.ConfigureEndpointDefaults(o => o.Protocols = HttpProtocols.Http1AndHttp2));
Но и это не помогло.
Спасибо за вашу помощь!