Запись ограничения «httpMethod» на маршруте должна иметь строковое значение

У меня есть проект веб-API asp.net, и в моемWebApiConfig файл, у меня определен следующий маршрут:

config.Routes.MapHttpRoute(
    name: "Web API Get",
    routeTemplate: "api/{controller}",
    defaults: new { action = "Get" },
    constraints: new { httpMethod = new HttpMethodConstraint("GET") }
    );

Для целей интеграционного тестирования я хочу сделать запросHttpSelfHostServer чтобы убедиться, что мы получаем правильные данные от вызова API. Я делаюHttpRequestMessage следующее:

var httpMethod = new HttpMethod("GET");
var request = new HttpRequestMessage(httpMethod, "http://localhost:XXXX/api/User/");
var results = _client.SendAsync(request).Result;

Я ожидаю, что это вызовет метод Get для UserController и затем вернет результаты, как определено в этом методе. Однако вместо этого я получаю следующее исключение:

System.InvalidOperationException: запись ограничения 'HTTPMethod» по маршруту с шаблоном маршрута 'апи / {контроллер}» должен иметь строковое значение или иметь тип, который реализуетIHttpRouteConstraint»

Это же URL (http://localhost:XXXX/api/User/) работает без ошибок, когда я использую его в браузере, поэтому я почти уверен, что проблема заключается в том, как я отправляю запросHttpSelfHostServer сквозьHttpClient, Я пытался использоватьHttpMethod.Get константа вместо этого, но это также бросило ту же ошибку.

У кого-нибудь есть идеи, как я мог решить эту проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос