Только когда я переконфигурировал способ маршрутизации конечных точек, я нашел ответ на проблему. Я написал это на тот случай, если кто-нибудь еще получит какие-то неописательные исключения из ASP. Net Core. В Startup.Configure я заменил:
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
на:
app.UseMvc(routes =>
{
routes.MapRoute("repo1", "{controller=Repo1Controller}");
routes.MapRoute("repo2", "{controller=Repo2Controller}");
}
Затем в Startup.ConfigureServices я добавил:
services.AddMvc(option => option.EnableEndpointRouting = false);
При следующем запуске это показало следующее исключение:
RouteCreationException: Следующие ошибки произошли с информацией о маршрутизации атрибута: Для действия: 'MyAPI.Controllers.Repo2Controller .UpdateEntityProperty (MyAPI) '
Ошибка: в шаблоне маршрута есть неполный параметр. Убедитесь, что каждый символ «{» имеет соответствующий символ «}». (Параметр 'routeTemplate')
В Repo2Controller
у меня было следующее:
[HttpPut("{entityId}/Properties/{propertyId")]
public IActionResult UpdateEntityProperty(string entityId, string propertyId)
{
// Do some stuff
}
Это высветило тот факт, что я пропустил закрытие }
в атрибуте HttpPut
. Как только я заменил это и вернулся к исходному методу маршрутизации конечной точки, все работало нормально.