Я использую Web API 2 и получаю следующую ошибку, когда отправляю POST методу API с помощью IIS 7.5 на локальном компьютере.
The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'string'.
Line 21: GlobalConfiguration.Configuration.EnsureInitialized();
Ни один из моих API не работает с IIS. Однако я могу запустить свой проект API в Visual Studio с помощью IIS Express и успешно выполнить POST для своего API входа в систему, но когда я пытаюсь выполнить запрос GET для другого вызова API, я получаю ошибку средства разрешения ограничений.
Чтобы устранить эту проблему, я создал новый проект Web API 2 в Visual Studio и начал импортировать существующие API-интерфейсы в новый проект по одному и запускать их, чтобы убедиться, что они работают. Используя IIS Express с этим новым проектом, я получаю те же точные результаты, что и с моим существующим проектом API.
Что мне здесь не хватает? Даже с новым проектом я не могу делать GET-запросы, не сталкиваясь с проблемой разрешения проблем.
string
не может применить никаких ограничений.Еще одна вещь, если вы не можете использовать int, bool или любое другое ограничение, это чувствительно к ключу, и вам нужно удалить все пробелы.
источник
trim()
сделают после разделения и перед сравнением ... Не обрезка строк, используемых в качестве ключей, - моя главная любимая мозоль, восходящая ко всем временам FoxPro.Я также получил эту ошибку, когда оставил пробел между именем переменной и типом переменной в маршруте, например, так:
Должно быть следующее:
источник
Я разработал маршрут API для одного метода Undo Web API и попытался применить валидацию типа данных ENUM к действию в маршруте. Обнаружена ошибка DefaultInlineConstrainResolver.
Чтобы применить ограничение ENUM, вы должны создать пользовательский
OrderCorrectionEnumRouteConstraint
с помощьюIHttpRouteConstraint
.Ссылка (это мой блог): https://rajeevdotnet.blogspot.com/2018/08/web-api-systeminvalidoperationexception.html для получения более подробной информации
источник
Я получил эту ошибку, когда Type объявлен как строка. Когда я изменил это на int, он начал работать
источник